Java主要参数被确定为主类

时间:2015-10-07 09:41:43

标签: java cmd arguments main

我在使用参数作为来自另一个Java管理器进程的命令运行Java进程时遇到问题。假设我有一个主类 Main ,我想传递 0 作为参数(对于javaw.exe,它只是其中一个参数)。为了说明,如果我在控制台中运行这样的东西,它可以工作:

javaw.exe -X... -D... -cp ... Main 0

这将使用参数0运行Main。现在,要从我的经理应用程序运行它,我使用以下行:

Process p = Runtime.getRuntime().exec(new string[] {
    "cmd.exe", "/c", "javaw.exe", "-X... -D... -cp ... Main", "0"});

我在 err 中获得以下输出:

Error: Could not find or load main class 0

换句话说,JVM将0标识为主类 使用不同的exec重载不是推荐的选项(它是通用基础结构)。

1 个答案:

答案 0 :(得分:7)

嗯,你正在通过整个" -X ... -D ... -cp ... Main"作为一个论点。相反,你应该:

Process p = Runtime.getRuntime().exec(new string[] {
    "cmd.exe", "/c", "javaw.exe", "-X...", "-D...", "-cp", "...", "Main", "0"});