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

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;

1 ACCEPTED SOLUTION

Accepted Solutions
alexal
SAS Employee

@MariaD,

 

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.

View solution in original post

21 REPLIES 21
ChrisHemedinger
Community Manager

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.

It's time to register for SAS Innovate! Join your SAS user peers in Las Vegas on April 16-19 2024.
MariaD
Barite | Level 11

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,

alexal
SAS Employee

@MariaD,

 

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;
MariaD
Barite | Level 11

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,

alexal
SAS Employee

@MariaD,

 

Thanks for your response. Please show me the contents of the following file:

 

/sas9/software/SASFoundation/9.4/bin/sasenv_local

MariaD
Barite | Level 11

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

alexal
SAS Employee

@MariaD,

 

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.

MariaD
Barite | Level 11

Thanks @alexx. 

 

After applying the change suggested, the proc sgplot run perfectly. Thanks again!

 

 

dsdsdssss
Calcite | Level 5

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

alexal
SAS Employee

@dsdsdssss,

 

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 
dsdsdssss
Calcite | Level 5

Wow, many many thanks to you, alexal, it works fine! (I've tried plenty of variations in the past few hours without success)

 

🙂

aarcad3100
Calcite | Level 5

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,

alexal
SAS Employee

@aarcad3100 ,

 

Please change LD_LIBRARY_PATH and try again:

 

export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/lib64/:$ODBCHOME/lib

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
  • 21 replies
  • 7335 views
  • 4 likes
  • 6 in conversation