Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
帮助使用JarClassLoader在java程序中运行jar_Java_Jvm - Fatal编程技术网

帮助使用JarClassLoader在java程序中运行jar

帮助使用JarClassLoader在java程序中运行jar,java,jvm,Java,Jvm,我试图在java程序中运行jar并捕获其标准输出我想这样做是为了避免每次运行jar时JVM启动成本。最简单的方法是什么 我首先修改了Java的JarClassLoader,并在其中添加了一个SecurityManager子类,以防止系统退出。JarClassLoader是URLClassLoader的一个子类,它在jar中查找主类,然后在那里执行主函数。但现在,当我尝试执行该函数时,即使我传递了正确的参数,也会得到InvocationTargetException。有人知道从这里到哪里吗 有更简

我试图在java程序中运行jar并捕获其标准输出我想这样做是为了避免每次运行jar时JVM启动成本。最简单的方法是什么

我首先修改了Java的JarClassLoader,并在其中添加了一个SecurityManager子类,以防止系统退出。JarClassLoader是URLClassLoader的一个子类,它在jar中查找主类,然后在那里执行主函数。但现在,当我尝试执行该函数时,即使我传递了正确的参数,也会得到InvocationTargetException。有人知道从这里到哪里吗


有更简单的方法吗?

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

我猜错误是由于您设置的安全性造成的,您有堆栈跟踪吗?jar是第三方应用程序吗?写包装器而不是直接使用main方法是不可能的。您可以使用aspectj对调用System.exit的代码应用短路“环绕建议”,以防止其被执行。您只是在执行main()方法,还是在使用公共接口来执行“插件”?动态加载的jar文件是否依赖于其他库?