Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.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
导致NoClassDefFoundError的Java系统参数_Java_Unix - Fatal编程技术网

导致NoClassDefFoundError的Java系统参数

导致NoClassDefFoundError的Java系统参数,java,unix,Java,Unix,我有一个类,它接收各种系统参数并打印出来: 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");

我有一个类,它接收各种系统参数并打印出来:

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\'
,基本上是我想到的任何想法。我做了一些研究,一直找不到任何固溶体

作为参考,我在网上找到了以下链接,其中另一个人似乎也有同样的问题,但不幸的是,这些建议都不起作用


在UNIX中如何传入带空格的系统参数?谢谢。

我的方法是:为什么不使用.properties文件来存储系统属性,而不是通过命令行传递它们?您可以使用以下方式访问属性:

Properties properties = new Properties();
try {
  properties.load(new FileInputStream("path/filename"));
} catch (IOException e) {
  ...
}
您可以迭代为:

for(String key : properties.stringPropertyNames()) {
  String value = properties.getProperty(key);
  System.out.println(key + " => " + value);
}

希望有帮助

您是否尝试过
“String\C”
?您是如何运行该程序的?如果您在将命令写入shell时键入该命令,则不会得到您引用的错误。是的,给出的错误消息与@Joni相同。你的命令行适合我。您需要提供更多有关如何运行该程序的详细信息。听起来和你的经历也很相似。我最终选择了类似的路线,谢谢你的建议。