Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何添加自定义Java命令行选项?_Java_Bash_Command Line_Cmd_Options - Fatal编程技术网

如何添加自定义Java命令行选项?

如何添加自定义Java命令行选项?,java,bash,command-line,cmd,options,Java,Bash,Command Line,Cmd,Options,我想在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 (bui

我想在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

我很肯定你能做到。至少在Sun的java 1.6实现中。

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

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

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

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

您是否正在使用任何可能会重新排列参数顺序的Java shell包装器?

您可以通过使用以下内容来简化参数的使用。

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

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

java-version的输出是什么?在我的主方法中,我使用与您类似的命令行访问'-I'作为args[0]。实际上在Eclipse中,它也可以正常工作,但在我们的服务器上不行。尝试创建一个没有jar的类,并使用命令行args运行它。如果它仍然给出错误,IBM支持站点是一个更好的找到答案的地方。这是一个正确的说法,但与实际问题完全无关。在IBM J9 VM(build 2.3,J2RE 1.5.0 IBM J9 2.3 Linux amd64-64 j9vmxa6423-20081129(启用JIT)上也尝试了这一点,使用一个只转储参数的小工具,效果很好。公共类测试{public static void main(String…args){System.out.println(java.util.Arrays.deepToString(args));}