Java主参数标识为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标识为主类。使用不同的执行重载是不推荐的选项(它是一个通用的基础设施)。

你传递了整个"-X…- d…- cp……Main"作为单个参数。相反,您应该使用:

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

相关内容

  • 没有找到相关文章

最新更新