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