从Java程序执行.jar文件
答
我建议你使用ProcessBuilder
并启动一个新的JVM。
这里是什么让你开始:
ProcessBuilder pb = new ProcessBuilder("/path/to/java", "-jar", "your.jar");
pb.directory(new File("preferred/working/directory"));
Process p = pb.start();
答
首先,你的问题的描述是有点不清楚。我不明白是否要从jar文件中加载要在应用程序中使用的类,或者该jar包含要运行的主文件。我会认为这是第二个。
如果是这样,你在这里有很多选择。 最简单的一种是以下几点:
String filePath; //where your jar is located.
Runtime.exec(" java -jar " + filepath);
瞧... 如果您不需要运行jar文件,而是加载类出来,让我知道。
答
另一种方法在Windows上是:
Runtime.getRuntime().exec("cmd /c start jarFile");
这种方式,你可以把你的进程的优先级,以及(普通/低/等)
答
1)设置来自环境变量的类路径
2)转到您的jar文件所在的文件夹
3)通过命令提示符
Java的罐子jarfilename
答
Process proc = Runtime.getRuntime().exec("java -jar Validate.jar");
proc.waitFor();
// Then retreive the process output
InputStream in = proc.getInputStream();
InputStream err = proc.getErrorStream();
byte b[]=new byte[in.available()];
in.read(b,0,b.length);
System.out.println(new String(b));
byte c[]=new byte[err.available()];
err.read(c,0,c.length);
System.out.println(new String(c));
答
以往要通过使用仅此一行代码,您可以从其中一个jar文件运行以下命令。
Desktop.getDesktop().open(new File("D:/FormsDesktop.jar"));
其中
new File("your path to jar")
希望它能帮助。
谢谢。
答
- 罐子库添加到您的项目
- 导入主类(见jar文件清单)
-
调用静态方法主要有参数
String args[] = {"-emaple","value"}; PortMapperStarter.main(args);
@aioobe我能够整合原始程序中的System.out?原谅这个问题,但我是新来的java – vfgjrk 2011-02-08 17:35:37
不知道我理解你的评论,但是你从`start()```````getInputStream```` getOutputStream`提供了'Process`。 – aioobe 2011-02-08 17:37:55
行不通!非常感谢你 – vfgjrk 2011-02-08 17:40:30