z / OS上用户为Java程序指定的ABEND代码

问题描述 投票:0回答:2

如果在JZOS启动器中设置环境变量,则>

EXPORT JZOS_ABEND_EXIT = 50

然后在Java代码中调用System.exit(51),程序将像这样终止:

IEF450I MYPROG JAVAJVM创建-异常= S000 U3333原因= 00000010

是否可以指定异常结束代码,例如使其成为U999而不是U3333。我在How to trigger a user ABEND?中找到了对LE异常终止例程'CEE3ABD'的隐式引用,但是如果有人指出如何从Java调用该例程,我将不胜感激。我需要编写JNI代码并从C语言调用它吗?还是有更简单的方法呢?

[如果我在JZOS启动器EXPORT JZOS_ABEND_EXIT = 50中设置环境变量,然后在Java代码中调用System.exit(51),程序将像这样终止:IEF450I MYPROG JAVAJVM ...

java java-native-interface zos
2个回答
2
投票

我玩了一下,发现对于31位JZOS,您还可以通过LE-runtime-options注册用户编写的条件处理程序,并使用它来捕获U3333异常并将其更改为其他内容。


0
投票

我通过使用JNI调用解决了这个问题。我不依赖于用户编写的退出处理程序,而是直接从Java调用方法Abend.abend。

© www.soinside.com 2019 - 2024. All rights reserved.