帮助使用JarClassLoader在java程序中运行jar
我试图在java程序中运行jar并捕获其标准输出我想这样做是为了避免每次运行jar时JVM启动成本。最简单的方法是什么 我首先修改了Java的JarClassLoader,并在其中添加了一个SecurityManager子类,以防止系统退出。JarClassLoader是URLClassLoader的一个子类,它在jar中查找主类,然后在那里执行主函数。但现在,当我尝试执行该函数时,即使我传递了正确的参数,也会得到InvocationTargetException。有人知道从这里到哪里吗帮助使用JarClassLoader在java程序中运行jar,java,jvm,Java,Jvm,我试图在java程序中运行jar并捕获其标准输出我想这样做是为了避免每次运行jar时JVM启动成本。最简单的方法是什么 我首先修改了Java的JarClassLoader,并在其中添加了一个SecurityManager子类,以防止系统退出。JarClassLoader是URLClassLoader的一个子类,它在jar中查找主类,然后在那里执行主函数。但现在,当我尝试执行该函数时,即使我传递了正确的参数,也会得到InvocationTargetException。有人知道从这里到哪里吗 有更简
有更简单的方法吗?我只想使用
Runtime.exec()
,但是我无法阻止System.exit()
我猜错误是由于您设置的安全性造成的,您有堆栈跟踪吗?jar是第三方应用程序吗?写包装器而不是直接使用main方法是不可能的。您可以使用aspectj对调用System.exit的代码应用短路“环绕建议”,以防止其被执行。您只是在执行main()方法,还是在使用公共接口来执行“插件”?动态加载的jar文件是否依赖于其他库?