在一个 java 文件中,我调用命令行语句来执行另一个 java 文件。这就是我正在做的:
List<String> paramsExecute = new ArrayList<String>();
paramsExecute.add("java");
paramsExecute.add("-cp");
paramsExecute.add("input\programs\User_K Program1");
paramsExecute.add("1 2 3");
ProcessBuilder builderExecute = new ProcessBuilder(paramsExecute);
builderExecute.redirectOutput(new File(a.txt));
builderExecute.redirectError(new File(b.txt));
其中一个 Java 文件的执行正在生成 b.txt 为:
Error: Could not find or load main class 1 2 3
另一个 java 文件正在生成 b.txt 为:
Usage: java [-options] class [args...] ...
但是,当我直接从命令行运行这些语句时,它执行正确。文件夹 input\programs\
与 src
文件夹的路径相同。 src
文件夹包含包含 ProcessBuilder 程序的 Java 文件。我已验证 .class 文件已正确创建并位于正确的文件夹中。我在 Windows 中运行该程序。
感谢任何帮助!!
最佳答案
这个paramsExecute.add("input\programs\User_K Program1");
被当成了一个单一的命令/参数,表示类路径应该等于input\programs\User_K 程序 1
我想你想使用更像...
paramsExecute.add("input\programs\User_K");
paramsExecute.add("Program1");
关于java - ProcessBuilder 没有正确执行 Java 类文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22137387/