【问题标题】:Java main argument identified as main classJava 主要参数标识为主类
【发布时间】:2016-01-04 11:45:15
【问题描述】:

我在运行带有参数的 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 重载选项(它是通用基础架构)。

【问题讨论】:

标签: java cmd arguments main


【解决方案1】:

好吧,您将整个“-X...-D...-cp ... Main”作为单个参数传递。相反,您应该:

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

【讨论】:

  • 对。不知道这很重要……谢谢。
猜你喜欢
  • 2023-04-03
  • 1970-01-01
  • 2011-05-23
  • 2020-07-11
  • 1970-01-01
  • 1970-01-01
  • 2019-01-13
  • 1970-01-01
  • 2018-10-20
相关资源
最近更新 更多