1

我有一个名为 bg.jar 的 jar 文件,它会打印一些数字。我想从 java 程序中调用这个 bg.jar。我用了这段代码

public class bg1 {
public static void main(String[] args) {
    try{
     //  Process ps = Runtime.getRuntime().exec("java -jar bg.jar");
      ProcessBuilder builder = new ProcessBuilder("java -jar bg.jar");
      Process process = builder.start();

    }catch(Exception e){
        System.out.println("e: "+ e.toString());
    }
  }
}

我在 bg1 项目的库文件夹中添加了 bg.jar。但是当我运行 bg1.class 它给了我这个错误:

e: java.io.IOException: Cannot run program "java -jar bg.jar": CreateProcess error=2, 系统找不到指定的文件

我如何从 bg1.class 调用 bg.jar

4

2 回答 2

1

我认为文件未找到错误是系统找不到“java”可执行文件。一种方法是将“java”目录路径添加到环境变量 PATH。要查找变量,请右键单击“我的电脑”/高级系统设置/环境变量/系统变量。然后打开一个新的控制台,运行上面的 Java 程序。

另一种方法可能是将 jar 文件加载到您的 Java 程序中。然后在您的 Java 代码中运行静态 main 方法。要动态加载 java 文件,请参阅如何在运行时加载 jar 文件。可以通过解析jar文件中的META-INF/MANIFEST.MF文件找到包含main方法的类。

于 2013-06-20T05:52:15.630 回答
0

ProcessBuilder builder = new ProcessBuilder("java -jar bg.jar");

空格在进程构建器命令中不起作用,我尝试使用逗号分隔的单词,它起作用了。

命令“make macosx”是这样的——

ProcessBuilder builder = new ProcessBuilder("make" , "macosx");

于 2015-10-24T21:55:14.657 回答