Monday, October 13, 2014

-vm in eclipse.ini is not considered during the eclipse launch in mac os x

I was facing this issue, I have multiple Java versions installed in my Mac system and I wanted to change my eclipse default Java version.

I have configured -vm parameter in eclipse.ini file in mac os x, but some how this parameter didn't take effect.
-vm
Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/bin/java

To resolve this issue, I have followed the below link.
http://stackoverflow.com/questions/10352715/how-do-i-run-eclipse-using-oracles-new-1-7-jdk-for-the-mac

What worked for me is, configuring libjvm.dylib path in the eclipse.ini file and info.plist file.

eclipse.ini
-------------
-vm
Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/jre/lib/server/libjvm.dylib

info.plist
----------
<key>Eclipse</key>
<array>
<string>-vm</string>
<string>/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/jre/lib/server/libjvm.dylib</string>
</array>

Add above entry in the last.

info.plist file can be found in below location:
Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents

How do I know with which version of Java eclipse got launched ?

Eclipse would have launched with some JRE support, to understand and know which version of java is used and from where it picked up. Follow these steps.

Go to Help->About Eclipse -> Installation Details -> Configuration

Look for below parameters:
java.version=1.7.0_55
java.home=C:\Program Files\Java\jre7
eclipse.vm=C:\Program Files\Java\jre7\bin\javaw.exe

Where can I find configured default Java/JRE in my Mac OS X system

Go to below location to find the installed JDK versions in your mac machine.

/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/

eclipse.ini -vm option

-vm argument is useful for passing virtual machine to the eclipse.ini. Mostly this will be used where your system configured Java is different and you wanted to pass different version of java version to the eclipse.

Please follow below link from eclipse
https://wiki.eclipse.org/Eclipse.ini

Example: In windows
-vm
C:\Java\JDK\1.6\bin\javaw.exe

Example: In Mac OS X
 -vm
/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/bin/java

This argument should always before the -vmargs arguments and -vm and parameter value should specified in different lines.

In Mac OS X, some times this is not working. Even though we have specified in the eclipse.ini file, eclipse launcher is always taking the different jvm.

To resolve this issue, please follow the proposed solution in the below link
http://stackoverflow.com/questions/10352715/how-do-i-run-eclipse-using-oracles-new-1-7-jdk-for-the-mac

Copying files from Windows to Mac OS

For my reference

Download this software in Windows, this will allow to get the access to Mac os and you can easily transfer files from windows to mac using this.

Wednesday, October 8, 2014

Maximum heap size allocated on 32 bit JVM's

http://www.oracle.com/technetwork/java/hotspotfaq-138619.html#gc_heap_32bit

The maximum theoretical heap limit for the 32-bit JVM is 4G. Due to various additional constraints such as available swap, kernel address space usage, memory fragmentation, and VM overhead, in practice the limit can be much lower. On most modern 32-bit Windows systems the maximum heap size will range from 1.4G to 1.6G. On 32-bit Solaris kernels the address space is limited to 2G. On 64-bit operating systems running the 32-bit VM, the max heap size can be higher, approaching 4G on many Solaris systems.

In nutshell:
Theoretically : 4GB
Practically:  1.4 to 1.6GB


Tuesday, October 7, 2014

Where can I find eclipse preferences stored files ?

Eclipse stores all the preferences in the preference configuration files. This you can find in the below eclipse workspace location.

<eclipseworkspace>\.metadata\.plugins\org.eclipse.core.runtime\.settings\

Say for example, jre configuration will be stored in the "org.eclipse.jdt.launching.prefs" file.