IBM Support

IBM Rational Application Developer fails to start with error: "Could not create the Java virtual machine"

Technote (troubleshooting)


Problem(Abstract)

After installing either IBM Rational Application Developer for WebSphere Software v7.x or Rational Functional Tester v8.0, attempts to start fails with the error "Could not create the Java virtual machine". This problem has also been observed when installing Rational Software Development Platform (RSDP) products such as the above two.

Symptom

The following Java Virtual Machine Launcher error dialog shows when attempting to start Rational Application Developer:

Could not create the Java virtual machine.

You may also encounter a JVM error termination pop-up

with

"JVM terminated. Exit code=1"



Cause

The IBM_JAVA_OPTIONS and or _JAVA_OPTIONS environment variables were set improperly.

Also environment variable JAVA_TOOL_OPTIONS when set improperly, as of Java 5.0+ in the context of Rational Application Developer v7.0 or higher.


Environment

In this scenario HP Mercury Quick Test Pro Professional v9.3 was installed and the following Microsoft Windows XP User and System Environmental variables were present:

IBM_JAVA_OPTIONS and _JAVA_OPTIONS

Each was set to:

-Xrunjvmhook -Xbootclasspath/a:C:\PROGRA~1\HP\QUICKT~1\bin\JAVA_S~1\classes;C:\PROGRA~1\HP\QUICKT~1\bin\JAVA_S~1\classes\jasmine.jar

or more explicitly:


-Xrunjvmhook -Xbootclasspath/a:C:\PROGRA~1\HP\QuickTest Professional\bin\java_shared\classes;C:\PROGRA~1\HP\QuickTest Professional\bin\java_shared\classes\jasmine.jar


Note: HP Mercury Diagnostic Tool is another product that used these environment variables in the past. Contact HP Support if up to date information and support is needed on their products.

However it is important to stress the focus is on these environment variables being used dangerously by any vendor product or any software or user in general setting them directly.


Resolving the problem

Delete or clear the values of the IBM_JAVA_OPTIONS and _JAVA_OPTIONS environment variables.

After deleting/clearing the environment variables, it should be possible to start Rational Application Developer or other IBM SDK for Java (== JDK) based product.

Note: Deleting or clearing these variables may prevent the other products (such as the aforementioned HP products) from working. Read below for more details.

Warning: Deleting or clearing or changing IBM_JAVA_OPTIONS or _JAVA_OPTIONS should be done with caution if these are needed settings. There are legitimate and safe uses of these environment variables to set JVM options.


Explanation:

Eclipse based products from Rational Software Desktop Products typically make use of the IBM JDK, unless (starting with v7.0) they were installed onto a pre-existing Eclipse at the appropriate version and using some other JDK (typically from SUN).

The environment variable IBM_JAVA_OPTIONS was introduced as of IBM JDK v1.3.

The _JAVA_OPTIONS was available on SUN and IBM JDKs since v1.3 and continues to be present on SUN JDKs up to v6.0. The _JAVA_OPTIONS has not been available on IBM JDKs since v5.0.

Here are the IBM JDK Info Center references for IBM_JAVA_OPTIONS
"JVM environment settings"

IBM JDK 5.0 (used by RAD v7.0):
http://publib.boulder.ibm.com/infocenter/javasdk/v5r0/index.jsp?topic=/com.ibm.java.doc.diagnostics.50/diag/appendixes/env_var/env_jvm.html

IBM JDK 6.0 (as used by RFT v8.0 and RAD v7.5)):
http://publib.boulder.ibm.com/infocenter/javasdk/v6r0/index.jsp?topic=/com.ibm.java.doc.diagnostics.60/diag/appendixes/env_var/env_jvm.html

"...

IBM_JAVA_OPTIONS=<option>

    Set this variable to store default Java options including -X, -D or -verbose:gc style options; for example, -Xms256m -Djava.compiler.

    Any options set are overridden by equivalent options that are specified when Java is started.

    >> This variable does not support -fullversion, -showversion, or -version.<<

    Note that if you specify the name of a trace output file either directly, or indirectly, through a properties file, that output file might be accidentally overwritten if you run utilities such as the trace formatter, dump extractor, or dump viewer. For information about how to avoid this problem, see Controlling the trace, Note these restrictions. ....

..."

When Rational Application Developer, for example v7.5, is started,

> E:\IBM\SDP75\eclipse.exe -product com.ibm.rational.rad.product.v75.ide

,it makes use of the settings in:

{IBM RAD v7.5 Install Dir}\SDPxx\eclipse.ini, to specify the VM itself and VM arguments.

//==Example: eclipse.ini

-startup

plugins\org.eclipse.equinox.launcher_1.0.100.v20080509-1800.jar

-install

E:\IBM\SDP75

--launcher.library

plugins\org.eclipse.equinox.launcher.win32.win32.x86_1.0.100.v20080509-1800

-vm

E:\IBM\SDP75\jdk\jre\bin\javaw.exe

-vmargs

-Xquickstart

-Xms100m

-Xmx1024m

-Xmnx64m

-Xgcpolicy:gencon

-Xscmx96m

-Xshareclasses:name=IBMSDP_%u

-Xnolinenumbers

-XX:MaxPermSize=128M

-Xjit:exclude={com/ibm/team/coverage/internal/common/report/SourceElementInfo.write*}

-Dosgi.requiredJavaVersion=1.5

//==

The non-standard option -Xbootclasspath
"
-Xbootclasspath:<directories and zip or jar files separated by :>
Sets the search path for bootstrap classes and resources. The default is to search for bootstrap classes and resources within the internal VM directories and .jar files.
.."

Ref: "Nonstandard options" http://publib.boulder.ibm.com/infocenter/javasdk/v6r0/index.jsp?topic=/com.ibm.java.doc.user.win32.60/user/xoptions.html

In this problem scenario IBM_JAVA_OPTIONS and _JAVA_OPTIONS replace the default value for -Xbootclasspath classes, making it impossible to start the IBM JVM specified for Rational Application Developer or any other product using its own or other JDK.

As mentioned, global JVM environment variables : IBM_JAVA_OPTIONS and _JAVA_OPTIONS, should be used with caution. In particular on a machine with multiple JDK/JVMs in use by different products.

IMPORTANT!

Also check the JAVA_TOOL_OPTIONS environment variable associated with J2SE 1.5/5.0.
HP Tools added this and it has been reported that it prevents Rational Application Developer v7.5/v7.0 from starting up. See this HP link :

JAVA_TOOL_OPTIONS Environment Variable .

This Java 5.0+ environment variable is fully described in the JVMTI specification at:
http://java.sun.com/j2se/1.5.0/docs/guide/jvmti/jvmti.html#tooloptions.




Impact of solution to HP Mercury or other products:

In this case the solution of deleting or clearing these environment variables may impact starting some versions of the HP Mercury products mentioned or other products using them. If possible, these products should be started by passing necessary vm arguments directly on the cmd line or through the equivalent of some kind of "ini" file like Eclipse. More recent versions of the above HP products supposedly do not use the environment variables or at least not in this manner. HP Support should be contacted for complete up to date information or workarounds.


Good to know - Other JVM related problems:
  1. Although not frequent, this problem in which Rational Application Developer fails to start , has been encountered more often then other JVM Terminated scenarios:

    Eclipse: JVM terminated. Exit code=-1073741819http://www.ibm.com/support/docview.wss?uid=swg21273408

    In this case,the problem occurred because Rational Application Developer uses class caching for the Java Virtual Machine (JVM) and the class cache has become corrupted.The class cache is used to reduce the virtual memory footprint and improve startup time of the product.

    It has been known to occur more often when using VMWare like virtual machine products on Windows.

  2. Rational Application Developer crashes when opening a JSP page on machine with bad Windows DirectDraw or Direct3D drivers:

    JVM terminated. Exit code=8096
    http://www.ibm.com/support/docview.wss?uid=swg21303648

  3. ATI video driver problem:

    Rational Software Architect crashes with JVM terminated exit code = 255
    http://www.ibm.com/support/docview.wss?uid=swg21258902

Cross Reference information
Segment Product Component Platform Version Edition
Software Development Rational Functional Tester Eclipse Linux, Windows 6.1, 6.1.0.1, 6.1.1, 6.1.1.1, 7.0, 7.0.0.1, 7.0.0.2, 7.0.0.3, 7.0.1, 7.0.1.1, 7.0.1.2, 7.0.1.3, 8.0
Software Development Rational Software Architect Eclipse Linux, Windows 6.0, 6.0.0.1, 6.0.1, 6.0.1.1, 6.0.1.2, 7.0, 7.0.0.1, 7.0.0.2, 7.0.0.3, 7.0.0.4, 7.0.0.5, 7.0.0.6, 7.0.0.7, 7.0.0.8
Software Development Rational Software Architect for WebSphere Software Eclipse Linux, Windows 7.5
Software Development Rational Functional Tester Linux, Windows 6.1, 6.1.0.1, 6.1.1, 6.1.1.1, 7.0, 7.0.0.1, 7.0.0.2, 7.0.0.3, 7.0.1, 7.0.1.1, 7.0.1.2, 7.0.1.3, 8.0, 8.0.0.1, 8.0.0.2

Document information

More support for: Rational Application Developer for WebSphere Software
Eclipse

Software version: 6.0, 6.0.0.1, 6.0.1, 6.0.1.1, 6.0.1.2, 7.0, 7.0.0.1, 7.0.0.2, 7.0.0.3, 7.0.0.4, 7.0.0.5, 7.0.0.6, 7.0.0.7, 7.0.0.8, 7.0.0.9, 7.0.0.10, 7.5, 7.5.1, 7.5.2, 7.5.3, 7.5.4, 7.5.5, 7.5.5.1

Operating system(s): Linux, Windows

Reference #: 1327744

Modified date: 07 November 2011