When you use the Windowing
environment of SAS (interactive SAS) in SAS 9.3, you might encounter
error messages similar to the following in the SAS Log window when
you run programs (for example: Proc javainfo; run;):
ERROR: Unable to attach current thread"
ERROR: Unable to load the java virtual machine"
ERROR: Proc javainfo did not run correctly
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.
These errors are typically
related to issues with the Java Runtime Environment (JRE). To resolve
these issues, follow these steps:
-
Check your JREOPTIONS
settings by submitting the following code in SAS:
proc options option=jreoptions;
run;
Your log output should
be similar to the following:
proc options option=jreoptions; run;
JREOPTIONS=( -DPFS_TEMPLATE=C:\Program
Files\SASHome\SASFoundation\9.3\tkjava\sasmisc\qrpfstpt.xml
-Djava.class.path=C:\PROGRA~1\SASHome\SASVER~1\eclipse\plugins\
SASLAU~1.JAR
-Djava.security.auth.login.config=C:\Program
Files\SASHome\SASFoundation\9.3\tkjava\sasmisc\sas.login.config
-Djava.security.policy=C:\Program Files\SASHome\SASFoundation\
9.3\tkjava\sasmisc\sas.policy
-Djava.system.class.loader=com.sas.app.AppClassLoader
-Dlog4j.configuration=file:/C:/Program%20Files/SASHome/
SASFoundation/9.3/tkjava/sasmisc/sas.log4j.properties
-Dsas.app.class.path=C:\PROGRA~1\SASHome\SASVER~1\eclipse\
plugins\tkjava.jar
-Dsas.ext.config=C:\Program Files\SASHome\SASFoundation\9.3\
tkjava\sasmisc\sas.java.ext.config
-Dsas.jre.libjvm=C:\PROGRA~2\Java\JRE16~1.0_2\bin\client\jvm.dll
-Dtkj.app.launch.config=C:\PROGRA~1\SASHome\SASVER~1\picklist -Xms128m )
Java Runtime Environment options
NOTE: PROCEDURE OPTIONS used (Total process time):
real time 0.01 seconds
cpu time 0.00 seconds
At the end of the log
output, you should have a value that is similar to the following:
-Dsas.jre.libjvm=C:\PROGRA~2\Java\JRE16~1.0_2\bin\client\jvm.dll
-
Navigate to the location
that is specified by -Dsas.jre.libjvm and verify the location of the
jvm.dll file.
-
To display the JRE version
that is installed on your computer:
Select
StartRun and
type
cmd
.
Navigate to the bin
directory by using the
cd
command.
For example:
C:\PROGRA~2\Java\JRE16~1.0_2\bin\
Following
are examples of DOS commands that navigate to the bin location and
verify the Java version:
C:\>cd program files (x*
C:\Program Files (x86)\Java>cd jre1.6.0_24
C:\Program Files (x86)\Java\jre1.6.0_24>java -fullversion
java full version "1.6.0_24-b07"
Here is an example output
from submitting the
java —version
command:
java version "1.6.0_24"
Java(TM) SE Runtime Environment (build 1.6.0_24-b07)
Java HotSpot(TM) 64-bit Server VM (build 19.1-b02, mixed mode)
-
Verify the Windows short
name in the sasv9.cfg file. Here is an example: Progra~1 . At the
DOS command, type
dir /x c:\prog*
Your output should be
similar to the following:
Directory of c:\
<DIR> PROGRA~1 Program Files
<DIR> PROGRA~2 Program Files (x86)
-
Open your SAS configuration
file in a text editor such as Notepad from
C:\Program
Files\SASHome\SASFoundation\9.3\nls\en\sasv9.cfg
and
locate the -jreoptions line. Ensure that all of the text is on one
line of this file. Spaces are inserted at the start of each option,
and each option begins with a hyphen (-). Also, verify the paths.
Here is an example of the JREOPTIONS in the sasv9.cfg file:
/* Options used when SAS is accessing a JVM for JNI processing */
-JREOPTIONS=(
-DPFS_TEMPLATE=!SASROOT\tkjava\sasmisc\qrpfstpt.xml
-Djava.class.path=C:\PROGRA~1\SASHome\SASVER~1\eclipse
\plugins\SASLAU~1.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/SASHome/SASFoundation
/9.3/tkjava/sasmisc/sas.log4j.properties
-Dsas.app.class.path=C:\PROGRA~1\SASHome\SASVER~1\eclipse
\plugins\tkjava.jar
-Dsas.ext.config=!SASROOT\tkjava\sasmisc\sas.java.ext.config
-Dsas.jre.libjvm=C:\PROGRA~2\Java\JRE16~1.0_2\bin\client\jvm.dll
-Dtkj.app.launch.config=C:\PROGRA~1\SASHome\SASVER~1\picklist
-Xms128m
-Xmx128m
)
-
Look for error messages
in the Java log located in
C:\Documents and Settings\<userid>\Application
Data\SAS\LOGS
.
-
From the Control Panel
you must uninstall the JRE, reboot, delete the JRE directory, and
then reinstall the JRE from the SAS Software Depot. To do this, perform
the following steps:
-
From the Control Panel select
Add/Remove ProgramsJava(TM) 6 Update
24 and remove the program. You can also
perform this action from
Programs and Features.
-
-
From
Windows Explorer,
right-click on
Start and select
Open
Windows Explorer or
explore.
Delete the JRE directory. Here is an example:
C:\Program
Files (x86)\Java\jre1.6.0_24)
-
Click on the Third Party Software
Requirements for use with the SAS products page, and download the
required JRE. See
http://support.sas.com/resources/thirdpartysupport/index.html
.
You can also click on the jre*.exe exe file that is located in the
SAS Software Depot to install the JRE that is needed from your order.
Here are some examples:
<SAS Software Depot>\products\javaruntime__99170__win__xx__sp0__1
\jre-6u24-windows-i586.exe
<SAS Software Depot>\products\javaruntime__99170__wx6__xx__sp0__1
\jre-6u24-windows-i586.exe
Note: These 32–bit JRE installs
are required even when the operating system is 64–bit.
-
Ensure that the path
to the JREHOME is correct in the sassw.config file located in the
SASHOME directory (
C:\Program Files\SASHome\sassw.config
.
You can verify the required version by looking at the SAS Third Party
Software Requirements. See
http://support.sas.com/resources/thirdpartysupport/index.html
This file launches Java-based products. Here is an example of the
contents:
[properties]
JREHOME=C:\Program Files (x86)\Java\jre1.6.0_24\bin\java.exe
SASHOME=C:\Program Files\SASHome
DPLMTREGLOC=C:\Program Files\SASHome\deploymntreg
VJRHOME=C:\Program Files\SASHome\SASVersionedJarRepository
-
Verify your Java settings
and determine if you receive any error messages by submitting the
following code in SAS:
proc javainfo; run;
Here is an example of
the output that should appear in the log window:
PFS_TEMPLATE = C:\Program Files\SASHome\SASFoundation\9.3\tkjava\sasmisc
\qrpfstpt.xml
java.class.path = C:\PROGRA~1\SASHome\SASVER~1\eclipse\plugins\SASLAU~1.JAR
java.class.version = 50.0
java.runtime.name = Java(TM) SE Runtime Environment
java.runtime.version = 1.6.0_24-b07
java.security.auth.login.config = C:\Program
Files\SASHome\SASFoundation\9.3\tkjava\sasmisc\sas.login.config
java.security.policy = C:\Program Files\SASHome\SASFoundation\
9.3\tkjava\sasmisc\sas.policy
java.specification.version = 1.6
java.system.class.loader = com.sas.app.AppClassLoader
java.vendor = Sun Microsystems Inc.
java.version = 1.6.0_24
java.vm.name = Java HotSpot(TM) Client VM
java.vm.specification.version = 1.0
java.vm.version = 19.1-b02
sas.app.class.path = C:\PROGRA~1\SASHome\SASVER~1\eclipse\plugins\tkjava.jar
sas.ext.config = C:\Program Files\SASHome\SASFoundation\9.3\
tkjava\sasmisc\sas.java.ext.config
sas.jre.libjvm = C:\PROGRA~2\Java\JRE16~1.0_2\bin\client\jvm.dll
tkj.app.launch.config = C:\PROGRA~1\SASHome\SASVER~1\picklist
user.country = US
user.language = en
NOTE: PROCEDURE JAVAINFO used (Total process time):
real time 0.01 seconds
cpu time 0.01 seconds
*** NOTE: JRE issues can also cause other SAS applications not to open
(for example, the SAS Installation Qualification Tools).