【发布时间】:2012-08-10 17:01:03
【问题描述】:
我制作了 2 个 .java 文件和 1 个 .bat 文件。让我们将第一个 .java 文件称为“First.java”,将第二个称为“Second.java”。批处理文件是“compile.bat”。假设 First.java 位于“.../Desktop/temp/First.java”中,而 Second.java 与批处理文件(“.. ./Desktop/Test/compile.bat")。现在,compile.bat 包含以下代码:
cmd /c "cd C:\blahblah\temp && javac First.java"
我在 CMD 和双击中都对其进行了测试,它可以正常工作。我想用这个代码从 Second.java 编译 First.java:
Process p1 = Runtime.getRuntime().exec("C:\\blahblah\\compile.bat");
(我必须导航到目录,因为 CMD 的默认目录与 compile.bat 的目录不同)。这行不通。似乎它只是忽略了代码。正如我所说,我尝试了很多不同的东西,我什至尝试使用其他一些应该改变目录的库。请帮帮我!
【问题讨论】:
-
试试:
Runtime.getRuntime().exec("cmd /c C:\blahblah\compile.bat") -
@ig0774 不要忘记在 Java 中转义 \ (正如 MrLore 在他的回答中指出的那样),即
"C:\\blahblah\\compile.bat" -
@BrianJ:好点。那是在我喝咖啡之前。