在java中运行命令

bnlyeluc  于 2021-07-09  发布在  Java
关注(0)|答案(1)|浏览(368)

我要执行命令 mvn liquibase:update 如果应用程序的用户发送单词runas命令。我该怎么做?
我已经试过了

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
rggaifut

rggaifut1#

试试这个;

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

相关问题