如何运行在另一个目录中的.class文件
我的问题是如何使用exec()或ProcessBuilder类在目录中运行.class java文件。这只适用于.class文件与java程序位于同一目录中的情况。如何运行在另一个目录中的.class文件
你想产卵一个全新的过程?那么你应该使用
Runtime.getRuntime().exec(new String[] {"java","-cp","/path/to/classes/dir/","com.foo.MyClass"});
如果你想在同一进程中的东西,你可以创建一个新的ClassLoader它知道如何加载你的.class文件。然后,您可以使用反射从类加载器中获取类对象,并调用其“main”方法或类似的东西。您将需要使用反射,因为该类在默认类加载器中不可用。
我遗漏了exec的一些参数,即用于设置类路径的-cp(如果除了单个类文件外,还需要其他任何东西) – 2010-10-07 15:35:05
Java不是以这种方式启动的。你需要给类路径的绝对路径,然后给出完全合格的类名称。 Java不提供类文件。 – 2010-10-07 15:37:08
感谢马克,更新我的例子 – 2010-10-08 03:39:48
问题解决了,大家好感谢您的答复... :)
解决方案我已经使用
字符串路径= “d:\工作”; //我的程序执行的路径
String program =“Test”; //我的程序名称
ProcessBuilder pb = new ProcessBuilder(“java”,“ - classpath”,path,program);
如果您曾回到网站,您应该接受自己的答案。 – 2011-08-20 20:50:38
你认为比使用exec()更简单的选择吗?例如。将该类添加到类路径中,并只导入/调用它通常的Java方式? – BalusC 2010-10-07 15:19:56