我有一个类,它接受各种系统参数并将它们打印出来:
public class Test_Class {
public static void main(String[] args){
String fooA = System.getProperty("fooA");
String fooB = System.getProperty("fooB");
String fooC = System.getProperty("fooC");
System.out.println("System Properties:\n"+fooA+"\n"+foob+"\n"+fooC+"\n");
}
}
然后,使用 IntelliJ 传入 VM 参数,如下所示:
-DfooA="StringA" -DfooB="StringB" -DfooC="String C"
运行我的程序后,我得到以下输出:
System Properties:
StringA
StringB
String C
现在,如果我通过运行以下命令通过 UNIX 服务器运行相同的程序:
java -DfooA="StringA" -DfooB="StringB" -DfooC="String C" com.foo.fooUtil.Test_Class
我收到以下错误:
Exception in thread "main" java.lang.NoClassDefFoundError: C
我尝试了很多不同的方式来传递,fooC
例如-DfooC=\"String C\"
,,,基本上任何想到的想法。我做了一些研究,但一直找不到任何可靠的解决方案。-DfooC='String C'
-DfooC=\'String C\'
作为参考,我在网上找到了以下链接,其中另一个人似乎有同样的问题,但不幸的是,这些建议都不起作用。
http://www.unix.com/shell-programming-scripting/157761-issue-spaces-java-command-line-options.html
如何在 UNIX 中传入带有空格的系统参数?谢谢你。