java - 处理初始化期间 JVM 抛出的异常

标签 java exception jvm

我有一个 java 进程启动另一个 java 进程,并通过以下方式启用了 JMX 支持

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 将正常退出。我无法向进程报告由于绑定(bind)异常而生成的进程未启动。如何捕获/处理 JVM 抛出的 BindException 以便生成的进程可以执行 System.exit(VALID_ERROR_CODE)?这个异常甚至在任何控制传递给用户代码之前就会发生,所以我猜想在用户代码中不可能处理它。

知道如何处理这个用例吗?

最佳答案

您应该将 stderr(也可能是 stdout)从子进程重定向到父进程或 System.err (System.out)。 关注https://stackoverflow.com/a/1570269/1137529了解更多详情。

关于java - 处理初始化期间 JVM 抛出的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8736081/

相关文章:

java - JTextArea 作为 log4j Logger 的监听器

java - 热点 JVM 数组分配

java - HashMap: containsKey() 不应该是真的?

Java Webcrawler 提取电子邮件

java - JVM 中老年代空间利用率

java - 是否可以知道客户端(浏览器)是否与服务器在同一台机器上运行?

java - 当尝试删除同一事务中的锁定实体时,EntityManager 抛出 OptimisticLockException

python - kwargs 的自定义异常 (Python)

python - 在 Python 2 和 Python 3 中捕获破损的管道

scala - 在 Scala 中,为什么不对类型参数发出未经检查的警告?