【问题标题】:Run a command in Java在 Java 中运行命令
【发布时间】:2021-07-16 01:42:54
【问题描述】:

如果应用程序的用户发送单词 run as command,我想运行命令 mvn liquibase:update。我该怎么做?

我已经尝试了以下

   if (args[0].equals("run")) {
            Runtime rt = Runtime.getRuntime();
            try {
                Process pr = rt.exec("mvn liquibase:update");
            } catch (IOException e) {
                e.printStackTrace();
            }

但我收到以下错误

ava.io.IOException: Cannot run program "mvn": CreateProcess error=2, O sistema não conseguiu localizar o ficheiro especificado
    at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1142)
    at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1073)
    at java.base/java.lang.Runtime.exec(Runtime.java:591)
    at java.base/java.lang.Runtime.exec(Runtime.java:415)
    at java.base/java.lang.Runtime.exec(Runtime.java:312)
    at com.petapilot.migrations.MigrationsApplication.main(MigrationsApplication.java:25)
Caused by: java.io.IOException: CreateProcess error=2, O sistema não conseguiu localizar o ficheiro especificado
    at java.base/java.lang.ProcessImpl.create(Native Method)
    at java.base/java.lang.ProcessImpl.<init>(ProcessImpl.java:483)
    at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:158)
    at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1109)
    ... 5 more

【问题讨论】:

    标签: java command-line command


    【解决方案1】:

    试试这个;

    Process pr = rt.exec("cmd /c mvn liquibase:update");
    

    【讨论】:

    • 它有效,但唯一提供的反馈是“使用代码 0 完成流程”。如果在控制台中运行,是否可以显示该命令的输出?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-19
    • 2012-08-19
    • 2012-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多