2011-08-14 140 views
5

我有一个简单的Java文件Q.java,它依赖于外部库文件X.jar。 Q.java和X.jar都在同一个目录下。我可以通过执行命令行来编译Q.java:“javac -cp X.jar Q.java”。这会生成一个Q.class文件。我现在如何运行它?我尝试了所有这些:从依赖于jar文件的命令行运行Java程序?

1)的Java Q 2)java命令X.jar Q

我不断收到一个 异常在线程 “主要” java.lang.NoClassDefFoundError:Q 产生的原因:java的.lang.ClassNotFoundException:Q

那么现在我该如何从命令行运行这个类文件?

+0

Q.java中是否有'package'声明? –

+0

@TedHopp这会有所作为吗?我有一个类似的问题:http://stackoverflow.com/questions/43156180/classpath-option-works-for-javac-but-not-for-java-windows –

回答

10
java -cp X.jar:. Q 

您必须在classpath中指定要使用JAR依赖项和当前本地目录来解析类。


编辑建议的意见:

在Windows上,;更换:

java -cp X.jar;. Q 
+4

在Windows中,你必须使用“;”,而不是“:”,所以它会是“java -cp X.jar ;. Q” –

0

设置类路径中的当前目录,它应该解决的问题。大多数情况下,我们需要classpath中的当前目录,所以我通常建议设置“。”。 (不带引号),而不是为每次运行设置CLASSPATH环境变量。