我正在尝试在Java程序中运行jar并捕获其stdout。 我想这样做是为了避免每次运行jar时JVM启动成本。 最简单的方法是什么?

我首先通过修改Java的JarClassLoader并向其中添加SecurityManager子类来防止系统退出。 JarClassLoader是URLClassLoader的子类,它在jar中查找主类,然后在其中执行main函数。但是现在即使我传递正确的参数,当我尝试执行该函数时也会遇到InvocationTargetExceptions。有人想从这里出发吗?

有没有更简单的方法可以做到这一点?

最佳答案

我只使用Runtime.exec(),但后来我无法阻止System.exit()

07-26 03:23