【发布时间】:2012-01-05 00:28:14
【问题描述】:
我有一个 java 进程通过以下方式启动另一个启用了 JMX 支持的 java 进程
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)?如果是这样,您可以让启动过程查找并报告错误。
-
如果我没记错的话,由于这个 BindException,你的 jvm 不应该首先启动,那你为什么需要调用 System.exit(...)?
标签: java exception-handling jvm