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重载(它是通用基础结构).
那么你将整个"-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)