BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
timc_syd
Fluorite | Level 6

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

        )

1 ACCEPTED SOLUTION

Accepted Solutions
timc_syd
Fluorite | Level 6

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

4 REPLIES 4
timc_syd
Fluorite | Level 6

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.

timc_syd
Fluorite | Level 6

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).

SASkicker
Fluorite | Level 6

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

        )

rturcotte
Calcite | Level 5

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.

suga badge.PNGThe SAS Users Group for Administrators (SUGA) is open to all SAS administrators and architects who install, update, manage or maintain a SAS deployment. 

Join SUGA 

CLI in SAS Viya

Learn how to install the SAS Viya CLI and a few commands you may find useful in this video by SAS’ Darrell Barton.

Find more tutorials on the SAS Users YouTube channel.

Discussion stats
  • 4 replies
  • 9069 views
  • 5 likes
  • 3 in conversation