Hi Colin;

The latest example which I added last night accesses the classes straight out of /home/abc (per example).

I build jars with Eclipse. Right click project > export > Java > jar

Thank you for your time.

-----Original Message-----
From: JAVA400-L <java400-l-bounces@xxxxxxxxxxxxxxxxxx> On Behalf Of Colin Williams
Sent: Monday, October 7, 2024 1:54 AM
To: Java Programming on and around the IBM i <java400-l@xxxxxxxxxxxxxxxxxx>
Subject: Re: Need help with RNX0301 error -- CLASSPATH or signature error

I think the structure of your jar file should match the structure of your target folder in eclipse.

Normally your classes would be in a folder called classes in both the target folder and your jar file

How are you creating your jar file?

On Sun, 6 Oct 2024, 21:36 Blalock, Bill via JAVA400-L, < java400-l@xxxxxxxxxxxxxxxxxx> wrote:

Hi Colin;

The Item class is in the jar. The package name is rpgExample.

I viewed the structure of the jar by copying it to a zip file and
opening the zip file.

rpzExampleJar.jar
META-INFO
MANIFIST.MF
rpgExample
GetItem.class
GetItem.jar
Item.class
Item.jar
folders for other projects in the Eclipse workspace.


-----Original Message-----
From: JAVA400-L <java400-l-bounces@xxxxxxxxxxxxxxxxxx> On Behalf Of
Colin Williams
Sent: Sunday, October 6, 2024 1:41 PM
To: Java Programming on and around the IBM i
<java400-l@xxxxxxxxxxxxxxxxxx

Subject: Re: Need help with RNX0301 error -- CLASSPATH or signature
error

So your code is looking for fully qualified rpgExample.Item.

Is this inside your classes folder in your jar?

On Sun, 6 Oct 2024, 17:25 Blalock, Bill via JAVA400-L, <
java400-l@xxxxxxxxxxxxxxxxxx> wrote:

I am trying to call Jave from RPGLESRC. I keep running into RNX0301
when executing the RPGLE program. I have been at it 3 days and sure
could use some guidance.

Message . . . . : Java exception received when calling Java method.
Cause . . . . . : RPG procedure PRCPWDIRG in program BLALOCK/PRCPWDIRG
received Java exception
"java.lang.NoClassDefFoundError:rpgExample.Item" when calling
method "<init>" with signature "()V" in class "Item".

I tried for two days to get past this error with my own class and RPG.
Yesterday I decided to see if I could make RPGLE and Java work
together with an example from the Internet.
https://www/.
mysamplecode.com%2F2011%2F06%2Fcall-java-from-rpgle-explanation-with
.h
tml&data=05%7C02%7Cbill.blalock%40fisglobal.com%7C9be6398fec314522b0
db
08dce636840b%7Ce3ff91d834c84b15a0b418910a6ac575%7C0%7C0%7C6386383690
36
954146%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiL
CJ
BTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=dyiB4WIeuZshXfYBsbjCl
QN
sW1i%2Fjjdw5WvKwNDMQ8s%3D&reserved=0
This is a well thought out example.

I wanted to eliminate coding errors in my RPGLE and Java, to
minimize the possibility that this is a signature error. Still
getting the same
error.

I created an Eclipse project, rpgExample. I copied the Java source
from the example into two files, Item.java and GetItem.java. In
Eclipse I exported them to the IFS as a jar file, named
rpgExample.jar. The destination was /iasp1/java/prcExample. So now
I have the jar in /iasp1/java/prcExample/rpgExample.jar.

I create the RPGLE program as BLALOCK/QRPGLESRC (PRCPWDIRG). I
changed the package name from "com.as400samplecode" to match my
package name of "rpgExample" in both Java and RPGLE.

I used this statement at the top of the RPGLE program:
cmdString = 'ADDENVVAR ENVVAR(CLASSPATH) ' +
'VALUE(''/iasp1/java/prcExample/rpgExample.jar'')' +
'REPLACE(*YES)';
runCmd(cmdString);

I checked the value of CLASSPATH after executing the program with
WRKENVVAR. The value was
CLASSPATH
'/java/prcExample/rpgExample.jar'
That is what I expected. I checked the CLASSPATH with WRKLNK. It
was found.

The execution fails with the RNX0301 error.

I cannot understand what is going on. I'd appreciate some advice.
I can send the source code to you.

Thanks






Bill Blalock
Complete Payment Recovery Services
C (205) 292-0725
E Bill.Blalock@xxxxxxxxxxxxx<mailto:Bill.Blalock@xxxxxxxxxxxxx>

The information contained in this message is proprietary and/or
confidential. If you are not the intended recipient, please: (i)
delete the message and all copies; (ii) do not disclose, distribute
or use the message in any manner; and (iii) notify the sender
immediately. In addition, please be aware that any message addressed
to our domain is subject to archiving and review by persons other
than the intended recipient. Thank you. Message Encrypted via TLS
connection
--
This is the Java Programming on and around the IBM i (JAVA400-L)
mailing list To post a message email: JAVA400-L@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit:
https://list/
s.midrange.com%2Fmailman%2Flistinfo%2Fjava400-l&data=05%7C02%7Cbill.
bl
alock%40fisglobal.com%7C9be6398fec314522b0db08dce636840b%7Ce3ff91d83
4c
84b15a0b418910a6ac575%7C0%7C0%7C638638369036970784%7CUnknown%7CTWFpb
GZ
sb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0
%3
D%7C0%7C%7C%7C&sdata=u94byzc2WT9M3H%2Fa%2B9vPaNiIDI6hoGxG3sLCevTBKMw
%3
D&reserved=0 or email: JAVA400-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives at
https://archive.midrange.com/java400-l.

--
This is the Java Programming on and around the IBM i (JAVA400-L)
mailing list To post a message email: JAVA400-L@xxxxxxxxxxxxxxxxxx To
subscribe, unsubscribe, or change list options,
visit:
https://list/
s.midrange.com%2Fmailman%2Flistinfo%2Fjava400-l&data=05%7C02%7Cbill.bl
alock%40fisglobal.com%7Cdca43fe1a32047ba9b5a08dce69cddf2%7Ce3ff91d834c
84b15a0b418910a6ac575%7C0%7C0%7C638638808620637211%7CUnknown%7CTWFpbGZ
sb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3
D%7C0%7C%7C%7C&sdata=QuwvcN2X7Vr7iJoTaRoBvnMyTjNgM%2Bauf%2F%2B%2BXGi9O
SI%3D&reserved=0 or email: JAVA400-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives at
https://archive.midrange.com/java400-l.
The information contained in this message is proprietary and/or
confidential. If you are not the intended recipient, please: (i)
delete the message and all copies; (ii) do not disclose, distribute or
use the message in any manner; and (iii) notify the sender
immediately. In addition, please be aware that any message addressed
to our domain is subject to archiving and review by persons other than the intended recipient. Thank you.
Message Encrypted via TLS connection
--
This is the Java Programming on and around the IBM i (JAVA400-L)
mailing list To post a message email: JAVA400-L@xxxxxxxxxxxxxxxxxx To
subscribe, unsubscribe, or change list options,
visit:
https://list/
s.midrange.com%2Fmailman%2Flistinfo%2Fjava400-l&data=05%7C02%7Cbill.bl
alock%40fisglobal.com%7Cdca43fe1a32047ba9b5a08dce69cddf2%7Ce3ff91d834c
84b15a0b418910a6ac575%7C0%7C0%7C638638808620672474%7CUnknown%7CTWFpbGZ
sb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3
D%7C0%7C%7C%7C&sdata=BEo4nQp8rKNSmI3otF899peH7WNKbOGDz6uLmFYZC3E%3D&re
served=0 or email: JAVA400-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives at
https://archive.midrange.com/java400-l.

--
This is the Java Programming on and around the IBM i (JAVA400-L) mailing list To post a message email: JAVA400-L@xxxxxxxxxxxxxxxxxx To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/java400-l
or email: JAVA400-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives at https://archive.midrange.com/java400-l.
The information contained in this message is proprietary and/or confidential. If you are not the intended recipient, please: (i) delete the message and all copies; (ii) do not disclose, distribute or use the message in any manner; and (iii) notify the sender immediately. In addition, please be aware that any message addressed to our domain is subject to archiving and review by persons other than the intended recipient. Thank you.
Message Encrypted via TLS connection

As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.