我需要遵循IBM i JAVA规则来设置Java系统属性。我将使用环境变量QIBM_RPG_JAVA_PROPERTIES添加/覆盖os400.stderr属性。
我添加了ADDENVVAR ENVVAR(QIBM_RPG_JAVA_PROPERTIES)+VALUE('-Dos400.stderr =文件:/ QOpenSys /..../ LogInfo / stderr.txt;')替换(* YES)
这是在从Scott Klement调用HSSFR4服务程序的上下文中,该程序启动JVM调用JNI接口。这种情况是,添加此环境变量后,java会启动,但在调用JNI时无法生成空指针异常。如果我评论addenvvar语句,它将起作用。
此外,我收到的Java消息JVAB55A当前未定义文本:https://www.ibm.com/support/pages/node/1589487。即使我们是7.2,它也是V7R3M0的PTF。
有人在IBM i中从Java调用跟踪时遇到问题吗?我忘记了什么吗?
在我的情况下,获取Java跟踪的相应配置如下:
ADDENVVAR ENVVAR(QIBM_RPG_JAVA_PROPERTIES) +
VALUE('-Dos400.stderr=file:/QOpenSys/..../LogInfo/stderr.txt;')
ADDENVVAR ENVVAR(QIBM_USE_DESCRIPTOR_STDIO) VALUE('Y')
ADDENVVAR ENVVAR(QIBM_RPG_JAVA_EXCP_TRACE) VALUE('Y')
已解决。声明的路径中只有一个错误。跟踪已声明和使用。使用这三个值,跟踪将起作用。在我的情况下,将在IBM i控制台中读取EBCDIC中的文本文件。当然可以定义UTF8或ASCII结果。
ADDENVVAR ENVVAR(QIBM_RPG_JAVA_PROPERTIES)+VALUE('-Dos400.stderr =文件:/ QOpenSys /..../ LogInfo / stderr.txt;')ADDENVVAR ENVVAR(QIBM_USE_DESCRIPTOR_STDIO)VALUE('Y')ADDENVVAR ENVVAR(QIBM_RPG_JAVA_EXCP_TRACE)VALUE('Y')