Hi everyone,
I've just finish to install SAS 9.4 on my HP-UX server without any error. When executing the folloing example of SGPLOT on SAS EG 7.1, appears this error: ERROR: Unable to load the Java Virtual Machine.
Any idea?
Example execute:
proc format;
value agefmt
20-30 = "20 (*ESC*){unicode '2264'x} 30"
31-40 = "31 (*ESC*){unicode '2264'x} 40"
41-50 = "41 (*ESC*){unicode '2264'x} 50"
51-60 = "51 (*ESC*){unicode '2264'x} 60"
61-70 = "61 (*ESC*){unicode '2264'x} 70"
;
run;
proc sgplot data=sashelp.heart noautolegend;
title1 "Cholesterol Level by Age Range";
styleattrs datacolors=(red green purple orange cyan) backcolor=vpav wallcolor=pwh;
vbox cholesterol / category=AgeAtStart group=AgeAtStart;
format AgeAtStart agefmt.;
run;
Please change the following line in /sas9/software/SASFoundation/9.4/bin/sasenv_local:
SHLIB_PATH=/oracle/app/oracle/product/11.1.0/client_1/lib:/opt/IBM/db2/V9.1/lib64:$ODBCHOME/lib:/sas9/software/SASPrivateJavaRuntimeEnvironment/9.4/jre/bin
to:
SHLIB_PATH=/oracle/app/oracle/product/11.1.0/client_1/lib:/opt/IBM/db2/V9.1/lib64:$ODBCHOME/lib:$SHLIB_PATH
Save the file and try to run proc javainfo once again.
Try running:
proc javainfo; run;
Assuming that fails, you might need to configure your JRE options to point to the correct location. That's an install/admin task, so talk to your admin or reach out to SAS tech support.
Thanks @ChrisHemedinger.
I've just run "proc options option=jreoptions; run;" (because javainfo give me the following error: ERROR: Proc javainfo did not run correctly).
JREOPTIONS=( -DPFS_TEMPLATE=/sas9/software/SASFoundation/9.4/misc/tkjava/qrpfstpt.xml
-Djava.class.path=/sas9/software/SASVersionedJarRepository/eclipse/plugins/sas.launcher.jar
-Djava.security.auth.login.config=/sas9/software/SASFoundation/9.4/misc/tkjava/sas.login.config
-Djava.security.policy=/sas9/software/SASFoundation/9.4/misc/tkjava/sas.policy
-Djava.system.class.loader=com.sas.app.AppClassLoader
-Dlog4j.configuration=file:/sas9/software/SASFoundation/9.4/misc/tkjava/sas.log4j.properties
-Dsas.app.class.path=/sas9/software/SASVersionedJarRepository/eclipse/plugins/tkjava.jar
-Dsas.ext.config=/sas9/software/SASFoundation/9.4/misc/tkjava/sas.java.ext.config
-Dtkj.app.launch.config=/sas9/software/SASVersionedJarRepository/picklist -Xmx256m -Xms128m )
I hd installed SASPrivateJavaRuntimeEnvironment. Where can I define the correct JRE location? On "sasenv_local"?
Regards,
Please run the following SAS program and show me the log:
options set=TKJNI_OPT_TRACE="y";
%put JAVA_HOME is: %sysget(JAVA_HOME);
%put CLASSPATH is: %sysget(CLASSPATH);
%put PATH is: %sysget(PATH);
%put SHLIB_PATH is: %sysget(SHLIB_PATH);
proc javainfo; run;
proc options option=jreoptions; run;
Thanks @alexal. Following the results. As mentioned previous, proc javainfo return and error:
25 GOPTIONS ACCESSIBLE;
26 options set=TKJNI_OPT_TRACE="y";
27 %put JAVA_HOME is: %sysget(JAVA_HOME);
JAVA_HOME is: /sas9/software/SASPrivateJavaRuntimeEnvironment/9.4/jre
28 %put CLASSPATH is: %sysget(CLASSPATH);
WARNING: The argument to macro function %SYSGET is not defined as a system variable.
CLASSPATH is:
29 %put PATH is: %sysget(PATH);
PATH is:
/usr/bin:/usr/ccs/bin:/usr/contrib/bin:/usr/contrib/Q4/bin:/opt/perl/bin:/opt/gvsd/bin:/opt/ipf/bin:/opt/nettladm/bin:/opt/fcms/bin:
/opt/wbem/bin:/opt/wbem/sbin:/opt/sas/bin:/opt/graphics/common/bin:/opt/atok/bin:/usr/bin/X11:/usr/contrib/bin/X11:/opt/sec_mgmt/bas
tille/bin:/opt/caliper/bin:/opt/drd/bin:/opt/dsau/bin:/opt/dsau/sbin:/opt/resmon/bin:/opt/firefox:/opt/gnome/bin:/opt/ignite/bin:/op
t/propplus/bin:/usr/contrib/kwdb/bin:/opt/perl_32/bin:/opt/perl_64/bin:/opt/prm/bin:/opt/sfm/bin:/opt/swm/bin:/opt/sec_mgmt/spc/bin:
/opt/ssh/bin:/opt/swa/bin:/opt/hpsmh/bin:/opt/thunderbird:/opt/sentinel/bin:/opt/langtools/bin:/opt/gwlm/bin:/oracle/app/oracle/prod
uct/11.1.0/client_1/bin:/opt/networker/bin:.:/home/sas/bin
30 %put SHLIB_PATH is: %sysget(SHLIB_PATH);
SHLIB_PATH is:
/oracle/app/oracle/product/11.1.0/client_1/lib:/opt/IBM/db2/V9.1/lib64:/sas9/software/AccessClients/9.4/SQLServer/lib:/sas9/software
/SASPrivateJavaRuntimeEnvironment/9.4/jre/bin
NOTE: PROCEDURE JAVAINFO used (Total process time):
real time 1.04 seconds
cpu time 0.01 seconds
ERROR: Proc javainfo did not run correctly.
31 proc javainfo; run;
32 proc options option=jreoptions; run;
SAS (r) Proprietary Software Release 9.4 TS1M4
JREOPTIONS=( -DPFS_TEMPLATE=/sas9/software/SASFoundation/9.4/misc/tkjava/qrpfstpt.xml
-Djava.class.path=/sas9/software/SASVersionedJarRepository/eclipse/plugins/sas.launcher.jar
2 The SAS System 18:01 Saturday, August 12, 2017
-Djava.security.auth.login.config=/sas9/software/SASFoundation/9.4/misc/tkjava/sas.login.config
-Djava.security.policy=/sas9/software/SASFoundation/9.4/misc/tkjava/sas.policy
-Djava.system.class.loader=com.sas.app.AppClassLoader
-Dlog4j.configuration=file:/sas9/software/SASFoundation/9.4/misc/tkjava/sas.log4j.properties
-Dsas.app.class.path=/sas9/software/SASVersionedJarRepository/eclipse/plugins/tkjava.jar
-Dsas.ext.config=/sas9/software/SASFoundation/9.4/misc/tkjava/sas.java.ext.config
-Dtkj.app.launch.config=/sas9/software/SASVersionedJarRepository/picklist -Xmx256m -Xms128m )
Regards,
Thanks for your response. Please show me the contents of the following file:
/sas9/software/SASFoundation/9.4/bin/sasenv_local
Thanks @alexal. Follows the contents requested:
ORACLE_HOME=/oracle/app/oracle/product/11.1.0/client_1
export ORACLE_HOME
ODBCHOME=/sas9/software/AccessClients/9.4/SQLServer
export ODBCHOME
ODBCINI=$ODBCHOME/odbc.ini
export ODBCINI
SHLIB_PATH=/oracle/app/oracle/product/11.1.0/client_1/lib:/opt/IBM/db2/V9.1/lib64:$ODBCHOME/lib:/sas9/software/SASPrivateJavaRuntimeEnvironment/9.4/jre/bin
export SHLIB_PATH
NLS_LANG=american_america.WE8ISO8859P1
export NLS_LANG
if [ "$LD_LIBRARY_PATH" != "" ] ; then
LD_LIBRARY_PATH=${SHLIB_PATH}:$LD_LIBRARY_PATH
else
LD_LIBRARY_PATH=$SHLIB_PATH
fi
export LD_LIBRARY_PATH
Please change the following line in /sas9/software/SASFoundation/9.4/bin/sasenv_local:
SHLIB_PATH=/oracle/app/oracle/product/11.1.0/client_1/lib:/opt/IBM/db2/V9.1/lib64:$ODBCHOME/lib:/sas9/software/SASPrivateJavaRuntimeEnvironment/9.4/jre/bin
to:
SHLIB_PATH=/oracle/app/oracle/product/11.1.0/client_1/lib:/opt/IBM/db2/V9.1/lib64:$ODBCHOME/lib:$SHLIB_PATH
Save the file and try to run proc javainfo once again.
Thanks @alexx.
After applying the change suggested, the proc sgplot run perfectly. Thanks again!
Hello Everyone,
I have the same problem (Unable to load the JVM), and after doing what you wrote, nothing happened: I try to run a similar What am I doing wrong? Any help would be appreciated.
Here is the content of my sasenv_local:
ORACLE_HOME=/OraApp/Oracle/Products/Client/121020
LD_LIBRARY_PATH=/OraApp/Oracle/Products/Client/121020/lib
TNS_ADMIN=/sas94/thirdparty/instantclient_11_2
NLS_LANG=HUNGARIAN_HUNGARY.AL32UTF8
SHLIB_PATH=/OraApp/Oracle/Products/Client/121020/lib:$SHLIB_PATH
if [ "$LD_LIBRARY_PATH" != "" ] ; then
LD_LIBRARY_PATH=${SHLIB_PATH}:$LD_LIBRARY_PATH
else
LD_LIBRARY_PATH=$SHLIB_PATH
fi
export ORACLE_HOME LD_LIBRARY_PATH TNS_ADMIN NLS_LANG
PATH=$PATH:$ORACLE_HOME/bin
export PATH
I run the following code:
options set=TKJNI_OPT_TRACE="y" ;
%put OS: &SYSSCP &SYSSCPL ;
%put SAS Mode: &SYSPROCESSNAME ;
%put SAS Version: &sysvlong ;
%put User: &SYSUSERID ;
%put SASROOT: %sysget(SASROOT) ;
%put JAVA_HOME is: %sysget(JAVA_HOME) ;
%put CLASSPATH is: %sysget(CLASSPATH) ;
%put PATH is: %sysget(PATH) ;
%put LD_LIBRARY_PATH is: %sysget(LD_LIBRARY_PATH) ;
proc javainfo ;
run ;
proc options option=jreoptions ;
run ;
And the log is as seen below:
OS: LIN X64 Linux
17 %put SAS Mode: &SYSPROCESSNAME ;
SAS Mode: Object Server
18 %put SAS Version: &sysvlong ;
SAS Version: 9.04.01M2P072314
19 %put User: &SYSUSERID ;
User: sasegrcins
20 %put SASROOT: %sysget(SASROOT) ;
SASROOT: /sas94/SAS/SASFoundation/9.4
21 %put JAVA_HOME is: %sysget(JAVA_HOME) ;
JAVA_HOME is: /sas94/SAS/SASPrivateJavaRuntimeEnvironment/9.4/jre
22 %put CLASSPATH is: %sysget(CLASSPATH) ;
WARNING: The argument to macro function %SYSGET is not defined as a system variable.
CLASSPATH is:
23 %put PATH is: %sysget(PATH) ;
PATH is:
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/opt/dell/srvadmin/bin:/home/sasegrcins/.local/bin:/home/sasegrcins/bin:/sas94/SAS
/SASPrivateJavaRuntimeEnvironment/9.4/jre/bin:/OraApp/Oracle/Products/Client/121020/bin:/OraApp/Oracle/Products/Client/121020/bin
24 %put LD_LIBRARY_PATH is: %sysget(LD_LIBRARY_PATH) ;
LD_LIBRARY_PATH is:
/OraApp/Oracle/Products/Client/121020/lib:/OraApp/Oracle/Products/Client/121020/lib:/opt/dell/srvadmin/lib64::/OraApp/Oracle/Product
s/Client/121020/lib
25
NOTE: PROCEDURE JAVAINFO used (Total process time):
real time 1.00 seconds
cpu time 0.01 seconds
ERROR: Proc javainfo did not run correctly.
26 proc javainfo ;
27 run ;
28
29 proc options option=jreoptions ;
30 run ;
SAS (r) Proprietary Software Release 9.4 TS1M2
JREOPTIONS=( -DPFS_TEMPLATE=/sas94/SAS/SASFoundation/9.4/misc/tkjava/qrpfstpt.xml
The SAS System
-Djava.class.path=/sas94/SAS/SASVersionedJarRepository/eclipse/plugins/sas.launcher.jar
-Djava.security.auth.login.config=/sas94/SAS/SASFoundation/9.4/misc/tkjava/sas.login.config
-Djava.security.policy=/sas94/SAS/SASFoundation/9.4/misc/tkjava/sas.policy
-Djava.system.class.loader=com.sas.app.AppClassLoader -Djdk.lang.Process.allowAmbigousCommands=true
-Dlog4j.configuration=file:/sas94/SAS/SASFoundation/9.4/misc/tkjava/sas.log4j.properties
-Dsas.app.class.path=/sas94/SAS/SASVersionedJarRepository/eclipse/plugins/tkjava.jar
-Dsas.ext.config=/sas94/SAS/SASFoundation/9.4/misc/tkjava/sas.java.ext.config
-Dtkj.app.launch.config=/sas94/SAS/SASVersionedJarRepository/picklist )
Specifies the Java Runtime Environment options for SAS.
Thank you,
Barnabas
Change line number two from:
LD_LIBRARY_PATH=/OraApp/Oracle/Products/Client/121020/lib
to
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/OraApp/Oracle/Products/Client/121020/lib
Also, you do not need these lines, remove them:
SHLIB_PATH=/OraApp/Oracle/Products/Client/121020/lib:$SHLIB_PATH
if [ "$LD_LIBRARY_PATH" != "" ] ; then
LD_LIBRARY_PATH=${SHLIB_PATH}:$LD_LIBRARY_PATH
else
LD_LIBRARY_PATH=$SHLIB_PATH
fi
Wow, many many thanks to you, alexal, it works fine! (I've tried plenty of variations in the past few hours without success)
🙂
Hi @alexal
I know this thread is an old old, but I am having a similar issue.
Running the code below results in the following:
options set=TKJNI_OPT_TRACE="y";
%put JAVA_HOME is: %sysget(JAVA_HOME);
%put CLASSPATH is: %sysget(CLASSPATH);
%put PATH is: %sysget(PATH);
%put SHLIB_PATH is: %sysget(SHLIB_PATH);
proc javainfo; run;
1 The SAS System 02:20 Tuesday, July 16, 2019
1 ;*';*";*/;quit;run;
2 OPTIONS PAGENO=MIN;
3 %LET _CLIENTTASKLABEL='Program';
4 %LET _CLIENTPROCESSFLOWNAME='Process Flow';
5 %LET _CLIENTPROJECTPATH='';
6 %LET _CLIENTPROJECTPATHHOST='';
7 %LET _CLIENTPROJECTNAME='';
8 %LET _SASPROGRAMFILE='';
9 %LET _SASPROGRAMFILEHOST='';
10
11 ODS _ALL_ CLOSE;
12 OPTIONS DEV=PNG;
13 GOPTIONS XPIXELS=0 YPIXELS=0;
14 FILENAME EGSR TEMP;
15 ODS tagsets.sasreport13(ID=EGSR) FILE=EGSR
16 STYLE=HtmlBlue
17 STYLESHEET=(URL="file:///C:/Program%20Files%20(x86)/SASHome/x86/SASEnterpriseGuide/7.1/Styles/HtmlBlue.css")
18 NOGTITLE
19 NOGFOOTNOTE
20 GPATH=&sasworklocation
21 ENCODING=UTF8
22 options(rolap="on")
23 ;
NOTE: Writing TAGSETS.SASREPORT13(EGSR) Body file: EGSR
24
25 GOPTIONS ACCESSIBLE;
26 options set=TKJNI_OPT_TRACE="y";
27 %put JAVA_HOME is: %sysget(JAVA_HOME);
JAVA_HOME is: /opt/sas/sashome/SASPrivateJavaRuntimeEnvironment/9.4/jre
28 %put CLASSPATH is: %sysget(CLASSPATH);
WARNING: The argument to macro function %SYSGET is not defined as a system variable.
CLASSPATH is:
29 %put PATH is: %sysget(PATH);
PATH is: /sbin:/bin:/usr/sbin:/usr/bin:/opt/mssql-tools/bin
30 %put SHLIB_PATH is: %sysget(SHLIB_PATH);
WARNING: The argument to macro function %SYSGET is not defined as a system variable.
SHLIB_PATH is:
NOTE: PROCEDURE JAVAINFO used (Total process time):
real time 1.00 seconds
cpu time 0.00 seconds
ERROR: Proc javainfo did not run correctly.
31 proc javainfo; run;
32 proc options option=jreoptions; run;
SAS (r) Proprietary Software Release 9.4 TS1M6
JREOPTIONS=( -DPFS_TEMPLATE=/opt/sas/sashome/SASFoundation/9.4/misc/tkjava/qrpfstpt.xml
-Djava.class.path=/opt/sas/sashome/SASVersionedJarRepository/eclipse/plugins/sas.launcher.jar
-Djava.security.auth.login.config=/opt/sas/sashome/SASFoundation/9.4/misc/tkjava/sas.login.config
-Djava.security.policy=/opt/sas/sashome/SASFoundation/9.4/misc/tkjava/sas.policy
-Djava.system.class.loader=com.sas.app.AppClassLoader
-Dlog4j.configuration=file:/opt/sas/sashome/SASFoundation/9.4/misc/tkjava/sas.log4j.properties
-Dsas.app.class.path=/opt/sas/sashome/SASVersionedJarRepository/eclipse/plugins/tkjava.jar
-Dsas.ext.config=/opt/sas/sashome/SASFoundation/9.4/misc/tkjava/sas.java.ext.config
-Dtkj.app.launch.config=/opt/sas/sashome/SASVersionedJarRepository/picklist )
2 The SAS System 02:20 Tuesday, July 16, 2019
Specifies the Java Runtime Environment options for SAS.
NOTE: PROCEDURE OPTIONS used (Total process time):
real time 0.00 seconds
cpu time 0.00 seconds
33
34 GOPTIONS NOACCESSIBLE;
35 %LET _CLIENTTASKLABEL=;
36 %LET _CLIENTPROCESSFLOWNAME=;
37 %LET _CLIENTPROJECTPATH=;
38 %LET _CLIENTPROJECTPATHHOST=;
39 %LET _CLIENTPROJECTNAME=;
40 %LET _SASPROGRAMFILE=;
41 %LET _SASPROGRAMFILEHOST=;
42
43 ;*';*";*/;quit;run;
44 ODS _ALL_ CLOSE;
45
46
47 QUIT; RUN;
48
proc options option=jreoptions; run;
below is the content of the sasenv_local file:
# This file is sourced by the sasenv script in !SASROOT/bin
############################################################################
export ODBCHOME=/opt/microsoft/msodbcsql17
export ODBCSYSINI=/etc/
export ODBCINI=/etc/odbc.ini
export LD_LIBRARY_PATH=/usr/lib64/:/opt/sas/sashome/SASODBCDriversfortheWebInfrastructurePlatformDataServer/9.4/Driver/:$ODBCHOME/lib:/opt/sas/sashome/SASFoundation/9.4/sasexe
############################################################################
# End of sasenv_local
Thanks in advance for your help with this.
Regards,
Please change LD_LIBRARY_PATH and try again:
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/lib64/:$ODBCHOME/lib
The SAS Users Group for Administrators (SUGA) is open to all SAS administrators and architects who install, update, manage or maintain a SAS deployment.
SAS technical trainer Erin Winters shows you how to explore assets, create new data discovery agents, schedule data discovery agents, and much more.
Find more tutorials on the SAS Users YouTube channel.