ProcessBuilder 中的参数传递返回“无法找到或加载主类”

戴夫克

我有以下代码来构建我的 java 命令并运行进程构建器。

String runCommand[] = {"java", ExerciseSelected + " " + Input};
runpb   = new ProcessBuilder(runCommand);  
Process runp = runpb.start();  

输入是由空格分隔的输入字符串。目前我有一个 100 的输入,我将它传递给我的 java 程序。

运行它时,它返回“无法找到或加载主类练习 100”

现在我查看了另一篇 StackOverflow 文章,它解释了如何创建 java 命令调用。对 processbuilder 的命令调用如下所示

java练习100

如果我转到我的 java 应用程序文件夹并对相同的 Exercise.class 运行相同的调用,它可以在命令提示符下工作。但它不适用于 ProcessBuilder。

我试图用引号将 100 括起来,但这也不起作用。是否有可能我在整理这个命令时遗漏了什么?

乔恩·斯基特

你正在有效地尝试跑步

java "Exercise 100"

您需要两个参数:“Exercise”和“100”,因此您应该将它们作为数组中的不同元素:

String[] runCommand = { "java", exerciseSelected, input };

请注意,如果input实际上是“1 2 3”,这将等效于运行:

java Exercise "1 2 3"

这仍然可能不是您想要的。您可能想先按input空格分割

(我已将变量名称和 的位置调整[]为更惯用。)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章