This is really a limitation for Java on IBM i . It's not only for J9 but
also for Classic JVM on i. Is your application a new app with Java on i?
Or it worked someway before you move to J9?
For RPG calling Java, there is a workaround way to make your application
work is that you can using a java.endorsed.dirs property to include the
folders containing your JARs.
addenvvar QIBM_RPG_JAVA_PROPERTIES
value('-Djava.endorsed.dirs=/Java;/Java/lib;')
Wish it can work for you.
Best regards.
____________________________________________________________________________________________
Gavin, Zhang Gan
IBM i J9 Dev,
http://www.ibm.com/developerworks/ibmi/techupdates/java
Email: zhanggan@xxxxxxxxxx
Phone: +86-10-82452719
Address: 1/F, 28, ZhongGuanCun Software Park, No.8 Dong Bei Wang West
Road, Haidian District, Beijing P.R.China 100193
"Sonin,Nikolai" <nsonin@xxxxxxxxxxx>
Sent by: java400-l-bounces@xxxxxxxxxxxx
09/28/2012 12:13 AM
Please respond to
Java Programming on and around the IBM i <java400-l@xxxxxxxxxxxx>
To
<java400-l@xxxxxxxxxxxx>,
cc
Subject
J9 JVM not compliant?
To All:
I am trying to use the 32 bit J9 JVM that is 1.6 of java on V5R4M5 from
an ILE RPG program:
The following code:
D q s 1a inz('''')
/free
Exec_Command('CHGCURDIR DIR(' + q + '/java/' + q + ')');
Exec_Command('ADDENVVAR ENVVAR(CLASSPATH) REPLACE(*YES) ' +
'VALUE(' +
q +
'.:/Java/*.jar:/Java/lib/*.jar:/Java/rpgmail.jar' +
q +
')');
Exec_Command('ADDENVVAR ENVVAR(JAVA_HOME) REPLACE(*YES) ' +
'VALUE('+ q + '/QOpenSys/QIBM/ProdData/JavaVM/jdk60/32bit'
+ q + ')');
return;
/end-free
P e
Is supposed to set the JAVA_HOME ENVVAR and the CLASSPATH ENVVAR for the
JVM before using the Java Mail API.
It does this:
CLASSPATH '.:/Java/*.jar:/Java/lib/*.jar:/Jav' >
JAVA_HOME '/QOpenSys/QIBM/ProdData/JavaVM/jdk' >
But this is what I get in the Job Log:
Message ID . . . . . . : RNX0301 Severity . . . . . . . : 50
Message type . . . . . : Escape
Date sent . . . . . . : 09/27/12 Time sent . . . . . . :
12:06:09
Message . . . . : Java exception received when calling Java method.
Cause . . . . . : RPG procedure RPGMAIL_NE in program
SONINIKO/RPGMAILSV
received Java exception "java.lang.NoClassDefFoundError:
javax.mail.Address"
when calling method "<init>" with signature "()V" in class
"com.mowyourlawn.rpgmail.RPGMail".
According to Oracle in Java 6 specifying the directory or *.jar in the
classpath is supposed search all of the jar files in the directory.
Obviously I am doing something wrong or IBM did not get the message.
What am I doing wrong?
Thanks in advance for your time and effort.
Nick Sonin
As an Amazon Associate we earn from qualifying purchases.