事先道歉 - 我知道有很多很多很多类似的问题,但我想问一些与我的情况相关的问题。尝试从命令行运行时出现NoClassDefFoundError
我有一堆java和jar文件在同一目录中。我能够很好地编译,因此最终在同一个目录中有许多类文件。但是,当我去执行它给出了一个NoClassDefFoundError的程序说,它不能找到指定的类:
C:\Users\DB\Desktop\nextreports-integration-demo\src\ro\nextreports\integration>
java -cp ".;*.jar" SimpleDemo
Exception in thread "main" java.lang.NoClassDefFoundError: SimpleDemo (wrong nam
e: ro/nextreports/integration/SimpleDemo)
我试图从一个更高级别的目录同样的事情,但它并没有区别:
C:\Users\DB\Desktop\nextreports-integration-demo\src>java -cp ".\ro\nextreports\
integration\*.jar;.\ro\nextreports\integration" SimpleDemo
Exception in thread "main" java.lang.NoClassDefFoundError: SimpleDemo (wrong nam
e: ro/nextreports/integration/SimpleDemo)
在源文件中的包的说法是:
package ro.nextreports.integration;
我有我俯瞰一些非常基本的感觉。提前致谢。
编辑:非常感谢。它适用于以下内容:
java -cp ".\ro\nextreports\integration\nextreports-engine-6.3.jar;.\ro\nextreports\integration\commons-jexl-2.1.1.jar;.\ro\nextreports\integration\commons-logging-1.1.1.jar;.\ro\nextreports\integration\derby-10.10.1.1.jar;.\ro\nextreports\integration\itext-2.1.7.jar;.\ro\nextreports\integration\itext-rtf-2.1.7.jar;.\ro\nextreports\integration\itextpdf-5.0.6.jar;.\ro\nextreports\integration\jcalendar-1.3.2.jar;.\ro\nextreports\integration\jcommon-1.0.15.jar;.\ro\nextreports\integration\jfreechart-1.0.12.jar;.\ro\nextreports\integration\jofc2-1.0.1.jar;.\ro\nextreports\integration\mysql-connector-java-5.1.23-bin.jar;.\ro\nextreports\integration\mysql-connector-java-5.1.23-bin.jar;.\ro\nextreports\integration\poi-3.7.jar;.\ro\nextreports\integration\winstone-lite-0.9.10.jar;.\ro\nextreports\integration\xstream-1.3.1.jar;" ro.nextreports.integration.SimpleDemo
但为什么我不能为* .jar文件使用通配符?例如,下面通向NoClassDefFoundError的一类中的任何jar文件我没有作出明确:
java -cp ".;.\ro\nextreports\integration\*.jar" ro.nextreports.integration.
SimpleDemo
您需要使用该类的完全限定名称,即。包括其包装。 –
确保在环境变量设置中设置了路径设置和类路径变量。 – Sambhav