Architecting, installing and maintaining your SAS environment

The Java proxy's JNI call to start the VM failed

Accepted Solution Solved
Reply
Occasional Contributor
Posts: 5
Accepted Solution

The Java proxy's JNI call to start the VM failed

SAS Workspace/Desktop (SAS Foundation GUI for Windows) fails to start properly and shows errors in the log regarding Java.

ERROR: The Java proxy is not responding.

ERROR: The Java proxy's JNI call to start the VM failed.

ERROR: Java failed to start during the SAS startup.


Recently found when installing SAS 9.4 M1 (64bit) onto a Windows 7 Pro (64bit) workstation. The short names (8dot3 aliases) are not created by default by the operating system (Windows 7 and newer). These must be available before they can be used in the SAS configuration (for JREOPTIONS).

/*  Options used when SAS is accessing a JVM for JNI processing  */

-JREOPTIONS=(

        -DPFS_TEMPLATE=!SASROOT\tkjava\sasmisc\qrpfstpt.xml

        -Djava.class.path=C:\Program

        -Djava.class.path=C:\Program

        -Djava.class.path=C:\Program

        -Djava.class.path=C:\Program

        Files\SAS\SASVersionedJarRepository\eclipse\plugins\sas.launcher.jar

        -Djava.security.auth.login.config=!SASROOT\tkjava\sasmisc\sas.login.config

        -Djava.security.policy=!SASROOT\tkjava\sasmisc\sas.policy

        -Djava.system.class.loader=com.sas.app.AppClassLoader

        -Dlog4j.configuration=file:/C:/Program%20Files/SAS/SASFoundation/9.4/tkjava/sasmisc/sas.log4j.properties

        -Dsas.app.class.path=C:\Program

        -Dsas.app.class.path=C:\Program

        -Dsas.app.class.path=C:\Program

        -Dsas.app.class.path=C:\Program

        Files\SAS\SASVersionedJarRepository\eclipse\plugins\tkjava.jar

        -Dsas.ext.config=!SASROOT\tkjava\sasmisc\sas.java.ext.config

        -Dsas.jre.libjvm=C:\Program

        -Dsas.jre.libjvm=C:\Program

        -Dsas.jre.libjvm=C:\Program

        -Dsas.jre.libjvm=C:\Program

        Files\SAS\SASPrivateJavaRuntimeEnvironment\9.4\jre\bin\server\jvm.dll

        -Dtkj.app.launch.config=C:\Program

        -Dtkj.app.launch.config=C:\Program

        -Dtkj.app.launch.config=C:\Program

        -Dtkj.app.launch.config=C:\Program

        Files\SAS\SASVersionedJarRepository\picklist

        -Xms128m

        -Xmx128m

        Files\SAS\SASPrivateJavaRuntimeEnvironment\9.4\jre\bin\server\jvm.dll

        Files\SAS\SASPrivateJavaRuntimeEnvironment\9.4\jre\bin\server\jvm.dll

        Files\SAS\SASPrivateJavaRuntimeEnvironment\9.4\jre\bin\server\jvm.dll

        Files\SAS\SASVersionedJarRepository\eclipse\plugins\sas.launcher.jar

        Files\SAS\SASVersionedJarRepository\eclipse\plugins\sas.launcher.jar

        Files\SAS\SASVersionedJarRepository\eclipse\plugins\sas.launcher.jar

        Files\SAS\SASVersionedJarRepository\eclipse\plugins\tkjava.jar

        Files\SAS\SASVersionedJarRepository\eclipse\plugins\tkjava.jar

        Files\SAS\SASVersionedJarRepository\eclipse\plugins\tkjava.jar

        Files\SAS\SASVersionedJarRepository\picklist

        Files\SAS\SASVersionedJarRepository\picklist

        Files\SAS\SASVersionedJarRepository\picklist

        )


Accepted Solutions
Solution
‎09-17-2014 11:59 PM
Occasional Contributor
Posts: 5

Re: The Java proxy's JNI call to start the VM failed

You may need to resort to symbolic links to create shorter path names to folders and files required for JREOPTIONS. After SAS has been installed ..

In a command window (like DOS shell) type the following black text.

C:\> Mkdir c:\vJava

C:\> Cd c:\vJava

C:\> mklink /D sasPJRE "C:\Program Files\SAS\SASPrivateJavaRuntimeEnvironment"

C:\> mklink /D sasVJR "C:\Program Files\SAS\SASVersionedJarRepository"

C:\> mklink /D tkjava "C:\Program Files\SAS\SASFoundation\9.4\tkjava"

Adjust the path names as needed if SAS is installed elsewhere.


Edit the "sasv9.cfg"

For example in "C:\Program Files\SAS\SASFoundation\9.4\nls\en\sasv9.cfg"

/*  Options used when SAS is accessing a JVM for JNI processing  */

-JREOPTIONS=(

        -DPFS_TEMPLATE=C:\vJava\tkjava\sasmisc\qrpfstpt.xml

        -Djava.class.path=C:\vJava\sasVJR\eclipse\plugins\sas.launcher.jar

        -Djava.security.auth.login.config=C:\vJava\tkjava\sasmisc\sas.login.config

        -Djava.security.policy=C:\vJava\tkjava\sasmisc\sas.policy

        -Djava.system.class.loader=com.sas.app.AppClassLoader

        -Dlog4j.configuration=file:/C:\vJava\tkjava\sasmisc\sas.log4j.properties

        -Dsas.app.class.path=C:\vJava\sasVJR\eclipse\plugins\tkjava.jar

        -Dsas.ext.config=C:\vJava\tkjava\sasmisc\sas.java.ext.config

        -Dsas.jre.libjvm=C:\vJava\sasPJRE\9.4\jre\bin\server\jvm.dll

        -Dtkj.app.launch.config=C:\vJava\sasVJR\picklist

        -Xms128m

        -Xmx128m

        )

Now cross your fingers and start SAS again.

If Java updates remove the version SAS installed then you may need to redirect the paths above to the new location. You may need to add the java bin folder (containing java*.exe) into the environment variables (operating system, see "SET PATH"). Try typing "java -showversion" in a command window (like DOS shell).

View solution in original post


All Replies
Occasional Contributor
Posts: 5

Re: The Java proxy's JNI call to start the VM failed

To fix:

Better to do this before installing SAS..


Open a command prompt with admin rights and type:

c:\> fsutil behavior set disable8dot3 0

There are other methods to enable 8dot3 names and can vary according to OS

eg. regedit in Windows 7

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem]

"NtfsDisable8dot3NameCreation"=dword:00000000

Restart the computer (or VM system).


Pathnames should then allow for "C:\Progra~1\SAS"

If short names were not created by the OS when the OS was installed then it's very hard to create them later for "C:\Program Files".

*** SAS STILL FAILS ***

See next reply for my solution.

Solution
‎09-17-2014 11:59 PM
Occasional Contributor
Posts: 5

Re: The Java proxy's JNI call to start the VM failed

You may need to resort to symbolic links to create shorter path names to folders and files required for JREOPTIONS. After SAS has been installed ..

In a command window (like DOS shell) type the following black text.

C:\> Mkdir c:\vJava

C:\> Cd c:\vJava

C:\> mklink /D sasPJRE "C:\Program Files\SAS\SASPrivateJavaRuntimeEnvironment"

C:\> mklink /D sasVJR "C:\Program Files\SAS\SASVersionedJarRepository"

C:\> mklink /D tkjava "C:\Program Files\SAS\SASFoundation\9.4\tkjava"

Adjust the path names as needed if SAS is installed elsewhere.


Edit the "sasv9.cfg"

For example in "C:\Program Files\SAS\SASFoundation\9.4\nls\en\sasv9.cfg"

/*  Options used when SAS is accessing a JVM for JNI processing  */

-JREOPTIONS=(

        -DPFS_TEMPLATE=C:\vJava\tkjava\sasmisc\qrpfstpt.xml

        -Djava.class.path=C:\vJava\sasVJR\eclipse\plugins\sas.launcher.jar

        -Djava.security.auth.login.config=C:\vJava\tkjava\sasmisc\sas.login.config

        -Djava.security.policy=C:\vJava\tkjava\sasmisc\sas.policy

        -Djava.system.class.loader=com.sas.app.AppClassLoader

        -Dlog4j.configuration=file:/C:\vJava\tkjava\sasmisc\sas.log4j.properties

        -Dsas.app.class.path=C:\vJava\sasVJR\eclipse\plugins\tkjava.jar

        -Dsas.ext.config=C:\vJava\tkjava\sasmisc\sas.java.ext.config

        -Dsas.jre.libjvm=C:\vJava\sasPJRE\9.4\jre\bin\server\jvm.dll

        -Dtkj.app.launch.config=C:\vJava\sasVJR\picklist

        -Xms128m

        -Xmx128m

        )

Now cross your fingers and start SAS again.

If Java updates remove the version SAS installed then you may need to redirect the paths above to the new location. You may need to add the java bin folder (containing java*.exe) into the environment variables (operating system, see "SET PATH"). Try typing "java -showversion" in a command window (like DOS shell).

New Contributor
Posts: 3

Re: The Java proxy's JNI call to start the VM failed

Or edit the config file with these settings.

/*  Options used when SAS is accessing a JVM for JNI processing  */

-JREOPTIONS=(

        -DPFS_TEMPLATE=C:\Program Files\SASHome\SASFoundation\9.4\tkjava\sasmisc\qrpfstpt.xml

        -Djava.class.path=C:\Program Files\SASHome\SASVersionedJarRepository\eclipse\plugins\sas.launcher.jar

        -Djava.security.auth.login.config=C:\Program Files\SASHome\SASFoundation\9.4\tkjava\sasmisc

\sas.login.config

        -Djava.security.policy=C:\Program Files\SASHome\SASFoundation\9.4\tkjava\sasmisc\sas.policy

        -Djava.system.class.loader=com.sas.app.AppClassLoader

        -Dlog4j.configuration=C:\Program Files\SASHome\SASFoundation\9.4\tkjava\sasmisc\sas.log4j.properties

        -Dsas.app.class.path=C:\Program Files\SASHome\SASVER~1\eclipse\plugins\tkjava.jar

        -Dsas.ext.config=C:\Program Files\SASHome\SASFoundation\9.4\tkjava\sasmisc\sas.java.ext.config

        -Dsas.jre.libjvm=C:\Program Files\SASHome\SASPrivateJavaRuntimeEnvironment\9.4\jre\bin\server\jvm.dll

        -Dtkj.app.launch.config=C:\Program Files\SASHome\SASVersionedJarRepository\picklist

        -Xms128m

        -Xmx128m

        Files\SASHome\SASPRI~1\9.4\jre\bin\server\jvm.dll

        Files\SASHome\SASPRI~1\9.4\jre\bin\server\jvm.dll

        Files\SASHome\SASVER~1\eclipse\plugins\SASLAU~1.JAR

        Files\SASHome\SASVER~1\eclipse\plugins\SASLAU~1.JAR

        Files\SASHome\SASVER~1\eclipse\plugins\tkjava.jar

        Files\SASHome\SASVER~1\eclipse\plugins\tkjava.jar

        Files\SASHome\SASVER~1\picklist

        Files\SASHome\SASVER~1\picklist

        )

N/A
Posts: 1

Re: The Java proxy's JNI call to start the VM failed

Tim, thanks so much for posting this. I needed to use this for someone with SAS 9.4 and Windows 8.1. I thought SAS 9.4 would fix all our Java issues but SAS still finds ways of butchering it's config file now and then. I did not know about the symbolic links work around but once I proofread all the config entries it worked successfully.

🔒 This topic is solved and locked.

Need further help from the community? Please ask a new question.

Discussion stats
  • 4 replies
  • 5355 views
  • 4 likes
  • 3 in conversation