[英]Launch Java class from another Java application
有没有办法在Java应用程序中使用Runtime.exec
启动java类(并将其传递给类路径和libary路径)?
但需要能够传递CLASSPATH和libary路径。
我正在尝试制作用户下载的启动器,它会下载所需的文件然后启动它们。
谢谢
https://stackoverflow.com/a/5575619/20394应该解释如何添加到库路径并仍然使用相同的JVM。
要添加到类路径,请创建自己的URLClassLoader
并使用它来查找要加载的类,然后反射调用其start方法。
URLClassLoader classLoader = new URLClassLoader(
urlsToDirectoriesAndJars, getClass().getClassLoader());
Class<?> myMainClass = classLoader.findClass("pkg.path.for.MainClass");
Method main = myMainClass.getMethod("main", String[].class);
main.invoke(null, new Object[] { new String[] { "args", "for", "main" } });
您需要处理反射API抛出的一些异常,但这是它的要点。
如果该类调用System.exit
,那么请参阅如何阻止对System.exit()的调用终止JVM?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.