【问题标题】:Cannot run multiple commands in Java terminal无法在 Java 终端中运行多个命令
【发布时间】:2021-06-30 10:49:01
【问题描述】:

我无法使用符号“&&”、“&”、“||”、“;”运行多个命令 我检查了几乎所有提出这个问题的问题,但我仍然找不到问题的答案。我可以在java命令shell中成功运行一个命令但不超过1个。提前感谢您的帮助!

try {

                Process process = Runtime.getRuntime().exec("g++ " + projPath +" -o " + name + " && ./" + name);
                StringBuilder output = new StringBuilder();

                BufferedReader reader = new BufferedReader(
                        new InputStreamReader(process.getInputStream()));
                
                BufferedReader errinput = new BufferedReader(
                        new InputStreamReader(process.getErrorStream()));

                String line;
                String err;
                while ((line = reader.readLine()) != null) {
                    output.append(line + "\n");
                }
                while ((err = errinput.readLine()) != null) {
                    output.append(err + "\n");
                }

                int exitVal = process.waitFor();
                if (exitVal == 0) {
                    acc.setExpandedPane(pane1);
                    txt.setStyle("-fx-text-fill: black;");
                    txt.setText(output.toString());
                } else {
                    acc.setExpandedPane(pane1);
                    txt.setStyle("-fx-text-fill: red;");
                    txt.setText(output.toString());
                }

            } catch (IOException e) {
                e.printStackTrace();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }

【问题讨论】:

    标签: java shell javafx terminal command


    【解决方案1】:

    Java 不提供 shell,它只是将提供的字符串拆分为单词并将其作为参数传递给作为第一个单词提到的可执行文件。

    尝试将命令传递给 /bin/bash(或您选择的其他 shell):

    final String innerCommand = "g++ " + projPath +" -o " + name + " && ./" + name;
    final String[] command = {"/bin/bash", "-c", innerCommand};
    final Process process = Runtime.getRuntime().exec(command);
    

    【讨论】:

    • 好的,谢谢,成功了!抱歉,我很难在网上找到这个。
    猜你喜欢
    • 2023-03-06
    • 2015-10-19
    • 2016-08-24
    • 2013-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-22
    • 1970-01-01
    相关资源
    最近更新 更多