【问题标题】:How to add custom Java command-line options?如何添加自定义 Java 命令行选项?
【发布时间】:2011-03-09 02:21:57
【问题描述】:

我想为我的 Java 程序添加自定义命令行选项。这是一个例子:

java -cp my.jar package.Main -i input.data -o output.data

我怎样才能做到这一点。目前我只得到

JVMJ9VM007E Command-line option unrecognised: -i

编辑:java -version的输出

java version "1.5.0"
Java(TM) 2 Runtime Environment, Standard Edition (build pap64dev-20080315 (SR7))
IBM J9 VM (build 2.3, J2RE 1.5.0 IBM J9 2.3 AIX ppc64-64 j9vmap6423-20080315 (JIT enabled)
J9VM - 20080314_17962_BHdSMr
JIT  - 20080130_0718ifx2_r8
GC   - 200802_08)
JCL  - 20080314

【问题讨论】:

  • java -version 的输出是什么?我可以在我的主要方法中使用与您类似的命令行访问“-i”作为 args[0]。
  • 实际上在 Eclipse 中它也可以正常工作,但在我们的服务器上却不行。
  • 尝试创建一个没有 jar 的类并使用命令行参数运行它。如果它仍然给出错误,IBM 支持站点是查找答案的更好地方。

标签: java bash command-line cmd options


【解决方案1】:

我刚刚在我的 Windows JVM 上尝试过这个:

java 版本“1.5.0” Java(TM) 2 运行时环境,标准版(构建 pwi32devifx-20080907 (SR 8a + IZ29767 + IZ30684 + IZ31214 + IZ31213)) IBM J9 VM(内部版本 2.3,J2RE 1.5.0 IBM J9 2.3 Windows XP x86-32 j9vmwi3223ifx-2008 0811(启用 JIT) J9VM - 20080809_21892_lHdSMr JIT-20080620_1845_r8 GC-200806_19) JCL - 20080907

正如预期的那样,它工作得很好。如果您的命令行如下所示,您的错误消息是我可能期望的:

 java -cp my.jar  -i input.data -o output.data package.Main

您是否使用任何类型的 Java 外壳包装器来重新排序参数?

【讨论】:

  • 还在 IBM J9 VM(build 2.3,J2RE 1.5.0 IBM J9 2.3 Linux amd64-64 j9vmxa6423-20081129(启用 JIT)上尝试了这个,它使用了一个只转储参数的小工具,并且成功了很好。public class Test { public static void main(String... args) { System.out.println(java.util.Arrays.deepToString(args)); } }
【解决方案2】:

您可以通过使用诸如args4j 之类的内容来更轻松地使用参数。

【讨论】:

  • 如果您一开始就无法进入 Java 运行时,那也无济于事。这是一个真实的陈述,但与实际问题完全不相关。
【解决方案3】:

我很确定你可以做到这一点。至少在 Sun 的 java 1.6 实现中。

【讨论】:

    【解决方案4】:

    我假设“my.jar”不是您的实际类路径。您的实际类路径中是否有路径分隔符(即多个路径)?如果是这样,您是否为您的系统使用了正确的系统?请记住,*nix 系统使用:,而 Windows 使用;

    【讨论】:

      【解决方案5】:

      我想我找到了解决方案:问题是我运行了一个普通的 .jar 文件,就好像它是带有 -jar 参数的可执行 .jar 一样。这似乎引起了烦恼。

      【讨论】:

        猜你喜欢
        • 2013-10-23
        • 2019-08-27
        • 2018-03-23
        • 1970-01-01
        • 1970-01-01
        • 2013-06-30
        • 2011-08-25
        相关资源
        最近更新 更多