我正在尝试使用ProcessBuilder运行“java -version”:
processBuilder = new ProcessBuilder("java -version");
process = processBuilder.start();
但是我收到错误:
java.io.IOException: Cannot run program "java -version": CreateProcess error=2, The system cannot find the file specified
当我删除“-version”并执行:
processBuilder = new ProcessBuilder("java");
process = processBuilder.start();
它运行正常,我得到正常的帮助指南输出。
我怎样才能让它运行参数呢?
答案 0 :(得分:10)
完整的参数被解释为可执行文件。使用
ProcessBuilder processBuilder = new ProcessBuilder("java", "-version");
答案 1 :(得分:0)
构造方法摘要
ProcessBuilder(List command) - 使用指定的操作系统程序和参数构造流程构建器。
ProcessBuilder(String ... command) - 使用指定的操作系统程序和参数构造一个进程构建器。
所以你需要使用:
ProcessBuilder processBuilder = new ProcessBuilder("java", "-version");
答案 2 :(得分:-2)
你可能会让这个变得不必要地复杂化。如果您只想查找正在运行的Java版本,请使用System.getProperty("java.specification.version")
。
此外,如果Java不在PATH上,您的代码将失败,但这种方式仍然有效。