【问题标题】:Run Java program into another Program [duplicate]将Java程序运行到另一个程序中[重复]
【发布时间】:2012-08-30 00:22:00
【问题描述】:

可能重复:
Execute another jar in a java program

我尝试从另一个 java 应用程序中运行一个带有 java 应用程序的 jar 文件,但我无法让它工作。我的代码如下

// run Jar in other java application
Runtime run=Runtime.getRuntime();           
run.exec("java -jar ManichemManagerRotas BatchProcess 8 2012");

我尝试使用三个参数运行 manichemmanagerrotas.jar

所有方法我都能做到,但它不能工作仍然存在问题是无法运行 jar 文件的主要方法类,如果你对这个问题有任何想法,请给我重播,这对我来说很重要

我尝试运行 jar 文件然后错误是:无法访问 jarfile ManichemManagerRotas

【问题讨论】:

标签: java eclipse process runtime.exec


【解决方案1】:

尝试添加缺少的.jar

Runtime run=Runtime.getRuntime();            
run.exec("java -jar ManichemManagerRotas.jar BatchProcess 8 2012");

...而且您必须消耗流程输出...像这样:

InputStream in = run.getInputStream();
InputStream err = run.getErrorStream();

【讨论】:

    【解决方案2】:

    如果您想从另一个类调用 java 类/函数,请将其作为 jar 并将 jar 添加到您的项目构建路径中。在另一个类中,您创建 Jared 类的对象并调用该函数。 (确保你的类和函数是公共访问的)

    【讨论】:

      【解决方案3】:

      可能是你忘记输入 .jar

      run.exec("java -jar ManichemManagerRotas.jar BatchProcess 8 2012"); 
      

      【讨论】:

        【解决方案4】:

        Runtime.exec(...) 方法返回一个 java.lang.Process 实例。 只需调用它的getInputStream() 方法即可。

        Process p = run.exec("java -jar ManichemManagerRotas.jar BatchProcess 8 2012");
        InputStream is = p.getInputStream();
        

        【讨论】:

          【解决方案5】:

          如果您只想将输出写入某个文件而不修改它,您可以添加:

          > somefile.txt
          

          在“命令”的末尾:

          run.exec("java -jar ManichemManagerRotas.jar BatchProcess 8 2012 > somefile.txt");
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2013-02-19
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-06-18
            • 1970-01-01
            相关资源
            最近更新 更多