【问题标题】:Run a jar file from a java file从 java 文件运行 jar 文件
【发布时间】:2014-06-07 21:51:11
【问题描述】:

我正在尝试从一个 java 程序运行 jar 文件,我找到了这个链接:here。我使用以下代码:

ProcessBuilder pb = new ProcessBuilder("CEDDextractor_all_img.jar", "-jar", "cedd/");
    pb.directory(new File("cedd/"));
    Process p = pb.start();

但是我收到错误:无法加载图像:无法运行程序“cedd/CEDDextractor_all_img.jar”(在目录“cedd”中):CreateProcess 错误=193,%1 不是有效的 Win32 应用程序。我对需要指定的路径有点困惑。

批处理命令:

java -jar CEDDextractor_all_img.jar -file "file.jpg"

【问题讨论】:

    标签: java process jar


    【解决方案1】:
    ProcessBuilder pb = new ProcessBuilder("java", "-jar", "CEDDextractor_all_img.jar", "cedd/");
    pb.directory(new File("cedd/"));
    Process p = pb.start();
    

    可执行文件是java :-)(也可以是javaw

    【讨论】:

    • 是的,你是对的,是 java。我有 2 个参数,在命令行中是 -file“file.jpg”。我必须将它们放在两个单独的参数中还是只放在一个中?
    • @FereRes ProcessBuilder 的文档包含使用信息。
    • 是的,我已经看过了。但是,我不确定 -file "file.jpg" 是一两个参数。
    • 两个参数,我猜 :-)
    【解决方案2】:

    只调用“java”是不正确的,它可能不在 PATH 中;你应该使用:

    String jarPath = ...;
    ProcessBuilder pb = new ProcessBuilder(System.getProperty("java.home")
            + File.separator
            + "bin"
            + File.separator
            + "java", "-jar", jarPath);
    Process p = pb.start();
    

    【讨论】:

      猜你喜欢
      • 2017-05-21
      • 2018-05-02
      • 1970-01-01
      • 2013-08-01
      • 2017-05-05
      • 1970-01-01
      • 1970-01-01
      • 2013-06-30
      • 2016-03-03
      相关资源
      最近更新 更多