运行 Java 中的命令

Run a command in Java

如果应用程序的用户发送单词 运行 作为命令,我想 运行 命令 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

试试这个;

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