Java主要参数被确定为主类

Eug*_*rin 1 java program-entry-point arguments cmd

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

javaw.exe -X... -D... -cp ... Main 0
Run Code Online (Sandbox Code Playgroud)

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

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

我在错误中得到以下输出:

Error: Could not find or load main class 0
Run Code Online (Sandbox Code Playgroud)

换句话说,JVM将0标识为主类.
不建议使用不同的exec重载(它是通用基础结构).

Jon*_*eet 7

那么你将整个"-X ... -D ... -cp ... Main"作为一个参数传递出去.相反,你应该:

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