0

RPG から Java メソッドを呼び出そうとしていますが、マニュアルのJava と RPG の紹介 およびILE RPG からの Java メソッドの呼び出しに従っています。

しかし、Java 関数を呼び出す RPG 関数を呼び出すと、次のエラーが発生します。

Java メソッド (CGDF) の呼び出し時に Java 例外を受け取りました。

F1 を押すと、次のメッセージが表示されます。

メッセージ 。. . . : Java メソッド (CGDF) の呼び出し時に Java 例外を受け取りました。
原因 。. . . . : プログラム DEVLYNLIB/HELLO の RPG プロシージャ HELLO は
、クラス "JavaCallClass" のシグネチャ "(II)I" でメソッド "test.CallStaticMethod" を呼び出すときに、Java 例外 "java.lang.NoClassDefFoundError: JavaCallClass (間違った名前: test/JavaCallClass)" を受け取りました。 .

これが私のJavaクラスです:

package test;

public class JavaCallClass {
    public static int CallStaticMethod(int number1, int number2) {
    return number1 + number2;
}

RPG機能:

 H thread(*serialize)

 D StaticMethod    PR            10I 0 EXTPROC(*JAVA:
 D                                       'test.JavaCallClass':
 D                                       'CallStaticMethod')
 D                                     STATIC
 D  number1                      10I 0 VALUE
 D  number2                      10I 0 VALUE

 D sum             S             10I 0

  /free
   sum = StaticMethod(5:10);
   return;
  /end-free 

CLASSPATH 変数で何かをしなければならないのではないかと思います。正しく設定したと思います。私のJavaクラスファイルは/home/WAL60326/TutorialProject/test

ここに私の完全な CLASSPATH 変数値があります:

'/Plex/Objava/lib/obrun.jar:/Plex/WsydXml11.jar:/PLEX/JT400.JAR:/PLEX/WSYDUTIL.JAR:/Plex/xercesImpl.jar:/Plex/xalan.jar:/PLEX/ XML-APIS.JAR:/PLEX/WSYDDWA21.JAR:/PLEX/COMMONS-HTTPCLIENT-3.1.JAR:/PLEX/COMMONS-LOGGING-1.1.JAR:/PLEX/COMMONS-CODEC-1.3.JAR:/PLEX/ADDRESSBOOK .JAR:/PLEX/NEXTNUM.JAR:/PLEX/UDC.JAR:/PLEX/P6SERVICES.JAR:/PLEX/MASTERVOCAB.JAR:/home/WAL60326/TutorialProject/test'

4

1 に答える 1

2

クラスパスからパッケージ名を削除する必要があります。

:/home/WAL60326/TutorialProject

するべきです。

于 2013-08-22T06:45:05.193 に答える