在Windows 8上运行jar文件时出现java.lang.NoClassDefFoundError

时间:2014-06-25 10:07:51

标签: java windows-8 jar

当我发出以下命令时

java -Xmx1500m -jar myApp.jar %1 %2 %3 %4 %5 %6 %7 %8 %9 

我收到以下错误。

Throwable Error: java.lang.NoClassDefFoundError: org/supercsv/prefs/CsvPreference
Exception in thread "main" java.lang.Error: java.lang.NoClassDefFoundError: org/supercsv/prefs/CsvPreference
        at bc.c.Util.process(Util.java:135)
        at bc.m.TabularReader$CSVReader.<init>(TabularReader.java:68)
        at bc.m.TabularReader.<init>(TabularReader.java:37)
        at bc.c.Spread2db.main(Spread2db.java:244)
Caused by: java.lang.NoClassDefFoundError: org/supercsv/prefs/CsvPreference
        at bc.m.TabularReader$CSVReader.<init>(TabularReader.java:64)
        ... 2 more
Caused by: java.lang.ClassNotFoundException: org.supercsv.prefs.CsvPreference
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        ... 3 more

我想这是因为supercsv没有被正确地包含在类路径中。

请帮我修复此错误。

2 个答案:

答案 0 :(得分:1)

您需要包含CsvPreference类的路径。这是使用-cp标志完成的。

尝试

java -Xmx1500m -cp pathToCsvPreference -jar myApp.jar %1 %2 %3 %4 %5 %6 %7 %8 %9 

答案 1 :(得分:1)

在运行此java程序之前,您需要将super-csv jar和所有必需的jar放在类路径中。你有两种选择:

  1. 您可以使用系统类路径设置CLASSPATH=%CLASSPATH%;<path/to/super-csv jar>;<path to other jars individually>
  2. 您可以在执行Java命令时使用-cp选项指定它