我需要编写一个可以执行以下几点的Java代码:
G:\Java\Workspace
”。onar-runner
”命令。请注意,我必须编写代码,以便通过命令提示符执行上述点。
我收到下面提到的错误信息。还可以找到我使用过的代码片段。 任何人都可以看看这个,让我知道我在这里犯的错误吗?
我得到以下例外:
java.io.IOException: Cannot run program "sonar-runner" (in directory "G:\Java\Workspace"): CreateProcess error=2, The system cannot find the file specified
at java.lang.ProcessBuilder.start(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at com.nitish.swing.code.ExecuteSonar.run(SonarAutomation.java:67)
at java.util.TimerThread.mainLoop(Unknown Source)
at java.util.TimerThread.run(Unknown Source)
Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified
at java.lang.ProcessImpl.create(Native Method)
at java.lang.ProcessImpl.<init>(Unknown Source)
at java.lang.ProcessImpl.start(Unknown Source)
... 6 more
我的代码是:
class ExecuteSonar extends TimerTask {
final String proj_dir = "G:\\Java\\Workspace";
final String cmd = "sonar-runner";
Date now;
@Override
public void run() {
now = new Date();
Runtime rt = Runtime.getRuntime();
System.out.println("The Time is:" + now);
try {
rt.exec(cmd, null, new File(proj_dir));
} catch (IOException e) {
e.printStackTrace();
}
}
}
答案 0 :(得分:0)
您提供了可执行文件的相对路径(sonar-runner
),但找不到它:
The system cannot find the file specified
这是您的子进程继承的$PATH
值的问题。我怀疑你会发现它是空的。 Other answers exist告诉你如何提供它。