Tag: shellexecute

如何通过java程序运行ant命令?

我想通过java程序运行一个简单的ant -v命令。 搜索之后,我知道我必须使用shell执行代替进程,因为ant实际上不是exe格式。 我有一个程序,用于执行简单的JAVAC命令,但ant永远不会工作。 这是我的代码的样子。 Runtime runtime = Runtime.getRuntime() ; Process shellProcess = runtime.exec(“D:\\installs\\apache-ant-1.9.2\\bin\\ant -v”) ; shellProcess.waitFor() ; 当我运行它时,我得到以下exception Exception in thread “main” java.io.IOException: Cannot run program “D:\installs\apache-ant-1.9.2\bin\ant”: CreateProcess error=193, %1 is not a valid Win32 application at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029) at java.lang.Runtime.exec(Runtime.java:615) at java.lang.Runtime.exec(Runtime.java:448) at java.lang.Runtime.exec(Runtime.java:345) at com.check.SystemCheck.main(SystemCheck.java:14) Caused by: java.io.IOException: CreateProcess error=193, %1 is not […]

如何使用javas Process.waitFor()?

我正在尝试从Java运行命令行命令,并且快速的健全性检查让我意识到我遇到麻烦的原因是我无法让下面的pr.waitFor()调用工作。 这个程序在不到30秒后结束,并且在“foo:”之后不打印任何内容。 我预计它需要超过30秒并在“foo:”之后打印一个随机数。 我究竟做错了什么? import java.io.BufferedReader; import java.io.InputStreamReader; public class Sample { public static void main(String[] args) throws Exception { Runtime rt = Runtime.getRuntime(); Process pr = rt.exec(“sleep 32; echo $RANDOM”); pr.waitFor(); BufferedReader input = new BufferedReader( new InputStreamReader(pr.getInputStream())); String line=null; StringBuilder s = new StringBuilder(); while((line=input.readLine()) != null) { System.out.println(s); s.append(line); } System.out.println(“foo: ” […]