本文介绍了使用Java运行Linux命令时出现问题?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用Java运行命令,但没有输出.

I am running command using Java and getting no output.

Process p;
Runtime run = Runtime.getRuntime();
    String s1 = "queryData 1005017 --format '\"%s" scope'";

    System.out.println("Command is " + s1);


    try {

        p = run.exec(s1);
        BufferedReader br = new BufferedReader(
                new InputStreamReader(p.getInputStream()));
            while ((s = br.readLine()) != null)
                System.out.println("line: " + s);
        p.getErrorStream();
        p.waitFor();

    }

虽然使用同一命令---> queryData 1005017 --format'%s" scope'可以正常运行.想知道我在处理双引号或%号时是否缺少任何东西吗?

While the same command ---> queryData 1005017 --format '"%s" scope' runs without any issue. Wondering am i missing any thing while handling either double quote, or % sign?

推荐答案

尝试不要使用字符串从Java启动进程.正确的方法是使用 ProcessBuilder:>

Try do NOT use strings to start processes from Java. Correct way is usage of ProcessBuilder:

p = new ProcessBuilder(Arrays.asList(
    "queryData", "1005017", "--format", "\"%s\" scope")).start();

这篇关于使用Java运行Linux命令时出现问题?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-18 22:18