Java源代码中的标点符号在复制到IFS时更改为重音字母

时间:2010-12-30 10:34:26

标签: character-encoding ftp ibm-midrange rpgle ibm-ifs

我正在尝试运行一个使用java方法的RPGLE程序。我正在通过FTP将java代码(xxxx.java文件)从我的系统(Windows XP)传输到AS / 400 IFS目录。将其传输到IFS后,文件CCSID显示为819。

我在QSH中编译.java文件,没有显示错误。但是生成了两个类文件。即 Mailer.javaMailer.classMailer$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}等符号},!/等更改为其他一些符号。

因此,plz为我提出了一些解决方案,以便我可以运行这个程序。如何将.java文件传输到IFS而不将字符更改为某些不同的字符?

以下是一些细节......

系统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();                                       
ü                                                                              

2 个答案:

答案 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。