期间我有一个java程序开始以下列方式支持JMX支持另一个Java进程处理JVM抛出的异常初始化
java -Dcom.sun.management.jmxremote.port=8088 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -jar app.jar
我的问题是,如果8088端口在使用中,衍生进程的JVM会抛出BindException并且JVM将正常退出。由于绑定异常,我无法向流程报告产生的进程未启动。如何捕获/处理由JVM抛出的BindException,以便生成的进程可以执行System.exit(VALID_ERROR_CODE)?即使在任何控件传递给用户代码之前,这种异常都会发生,所以我想不可能在用户代码中处理它。
任何想法如何处理这个用例?
是否记录到stderr(System.err)?如果是这样,您可以让启动过程查找并报告错误。 – Bill 2012-01-05 00:35:41
如果我没有记错,由于这个BindException你的jvm不应该在第一个地方开始,那么为什么你需要调用System.exit(...)? – kosa 2012-01-05 05:44:23