java - ProcessBuilder 没有正确执行 Java 类文件

标签 java windows command-line processbuilder

在一个 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/

相关文章:

java - 聊天应用程序的 recyclerview 不显示任何数据或 View

windows - FFmpeg 进度跟踪 Visual C++

java - 具有 ArrayWritable 的 Hadoop MapReduce 链

java - 带有客户端证书身份验证的 HttpClient 后请求

java - 无法从 Netbeans 7.4 启动 derby 数据库

python - 如何通过 `Clash for Windows` 路由互联网流量(来自 Python 代码的 Ping 不起作用)

Windows DHCP 客户端主机名编码

c - 有没有一种标准化的方法来解析 C 中的命令行参数?

node.js - NPM Start – 权限错误

windows - 如何找出谁在运行 runas 应用程序?