我正在尝试运行一个使用java方法的RPGLE程序。我正在通过FTP将java代码(xxxx.java文件)从我的系统(Windows XP)传输到AS / 400 IFS目录。将其传输到IFS后,文件CCSID显示为819。
我在QSH中编译.java文件,没有显示错误。但是生成了两个类文件。即
Mailer.java
→Mailer.class
和Mailer$1.class
但是当我调用我的RPGLE程序时,会显示一个java异常......
Java exception received when calling Java method (C G D F)...
Application error. RNX0301 unmonitored by MAILERDEMO at statement 000000500
当我按下选项5在IFS中看到Mailer.java
文件时,{
,}
,[
,]
,{{1}等符号},!
,/
等更改为其他一些符号。
以下是一些细节......
系统CCSID值 - 819
工作CCSID - 273
我在IFS目录中的Java源代码:
\
显示运行RPGLE程序的Java异常:
// Load Properties File
if (is |= null) ä
try ä
properties = new Properties();
properties.load(is);
ü
catch (Exception e) ä
System.err.println("Error " + "Ö"" + e.getLocalizedMessage()
+ "Ö"" + " loading AS/400 Connection Properties.");
throw new RuntimeException(e);
ü
ü
// Assume properties passed as system properties
else ä
properties = System.getProperties();
ü
答案 0 :(得分:3)
如果您可以在QSH中使用javac编译源代码,那么Java源代码本身的传输方式使得它可以接受javac(它不进行代码页转换并且期望读取的字节在819中)。 Mailer $ 1.class来自Mailer中的一个匿名类(一个新的FooBar(),之后带有{} -block。)
你觉得它看起来不对,我希望是因为AS / 400系统很可能不同意你使用的字符集上的5250模拟器,我不担心(只要javac工作)
但是,您的错误消息表明RPG标头之间存在不匹配,该标头描述了您要调用的Java方法以及实际存在的Java方法。对我来说,看起来你想要调用“demo.Mailer.sendSimpleMail(String,String,String,String)”,它应该返回一个String,而你没有这样的方法。
答案 1 :(得分:1)
IMO没有理由在iSeries上编译代码......开发,测试和使用在工作站上构建代码...然后部署&在主机上测试应用程序jar。