【问题标题】:How to execute external application with arguments and receive result如何使用参数执行外部应用程序并接收结果
【发布时间】:2019-09-24 07:12:32
【问题描述】:

如何使用 java #ProcessBuilder 和 #RunTime 执行外部应用程序并传递参数并从外部应用程序返回结果?

public class test {



public static void main(String[] args) {
    try {
        System.out.println("Starting Application");
    //    Runtime runtime =Runtime.getRuntime();

        Process proc= new ProcessBuilder("NconnectLicenseGenerator.exe","ABCDEFGHIJK").start();
        InputStream is = proc.getInputStream();
        InputStreamReader isr = new InputStreamReader(is);
        BufferedReader br = new BufferedReader(isr);
        String line;
        System.out.printf("Output of the program is %s :" ,Arrays.toString(args));

这里我想将参数传递给我的应用程序并通过Java提交参数并返回结果

        while((line=br.readLine())!=null)
        {
            System.out.println(line);
        }

        System.out.println("Closing Application");
    } catch (IOException e) {            
        e.printStackTrace();
    }      
}

}

【问题讨论】:

    标签: java processbuilder


    【解决方案1】:

    您可以在此处找到如何将命令行参数发送到您的 Java 应用程序: https://docs.oracle.com/javase/tutorial/essential/environment/cmdLineArgs.html

    关于用Java调用外部程序: Process proc = new ProcessBuilder("NconnectLicenseGenerator.exe", String.join(" ", args).start();

    【讨论】:

    • 实际上我在其中传递参数的应用程序是一个 .NET 应用程序,我试过了,它仍然无法正常工作,你能帮帮我吗?
    • @Pranay Chandale,请去掉java标签,添加C#
    • 兄弟,我需要使用 Java 控制 .NET 应用程序
    • 请帮我定位您的问题。是在您尝试获取 NconnectLicenseGenerator.exe 的标准输出时吗?还是因为对 NconnectLicenseGenerator.exe 的调用不当?你有NconnectLicenseGenerator.exe的源码吗?
    【解决方案2】:

    我通过在 .net 中制作控制台应用程序并将其与 java process-builder 一起使用解决了这个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-15
      相关资源
      最近更新 更多