从java应用程序运行jar文件

时间:2012-09-05 17:12:48

标签: java eclipse process jar runtime.exec

  

可能重复:
  Run Java program into another Program

我尝试从eclipse中创建的java应用程序运行jar文件。 当我使用下面的源代码运行jar文件然后激活Unable访问jarfile错误

Process process = run.exec("java -jar  TestJava.jar");
InputStream inError = process.getErrorStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inError));
System.out.println("Error=" + bufferedReader.readLine());

4 个答案:

答案 0 :(得分:1)

听起来像TestJava.jar在另一个目录中。如果您在Eclipse中运行此代码,那么当前工作目录将与Eclipse项目的文件夹相同(除非您以不同方式配置它,这是Eclipse的默认运行位置)。通过绝对路径或相对于当前工作目录的路径指定TestJava.jar的路径。

您需要注意的另一件事 - 您需要同时使用您正在创建的Process的错误流和输出流。 Process实例的默认输出/错误流缓冲区大小不是很大,如果已满,将导致Process无限期地阻塞更多缓冲区空间。我建议在单独的Thread中使用每个流。

答案 1 :(得分:0)

设置应运行此进程的工作目录。使用以下语句设置工作目录。

Runtime.getRuntime().exec(command, null, new File("path_to_directory"));

答案 2 :(得分:0)

首先在cmd窗口中尝试java -jar命令,看看是否可以运行TestJava.jar。然后尝试从代码中运行相同的命令。

Runtime runtime = Runtime.getRuntime();
Process proc = runtime.exec("java -jar TestJava.jar");
System.exit(0);

答案 3 :(得分:0)

您需要提供Java命令的完整路径。

例如,在Windows下你需要像

这样的东西
C:/Program Files/java/jre/bin/java.exe

ProcessBuilder&尝试执行命令时,Runtime.exec不会考虑系统路径