.jar库的Java命令行问题

时间:2010-06-16 18:54:07

标签: java command-line jar compilation

我有一个.java(driver.java)文件,我正在尝试编译并从命令行运行。它使用名为EXT.jar的外部库,其结构只是一个名为EXT的文件夹,里面有几十个类。

所以我跑:

javac -cp EXT.jar driver.java

这样就可以很好地编写课程。

然后当我跑:

java -cp EXT.jar driver

我得到java.lang.NoClassDefFoundError

奇怪的是,如果我解压缩JAR(所以现在我在根目录中有一个名为EXT的文件夹),最后一个命令工作得很好!!司机将执行!

有什么方法可以让driver.class从EXT.jar/EXT/*class而不是实际的EXT文件夹中查找需要的类文件?

谢谢!

1 个答案:

答案 0 :(得分:19)

您正在将类编译到本地目录。因此,当您运行它时,您需要在类路径中包含当前目录。 E.g:

java -cp .;EXT.jar driver

或者在linux中:

java -cp .:EXT.jar driver

按照你现在的方式,你说你的类路径只是 EXT.jar(以及CLASSPATH环境变量中的任何内容)而没有别的(这就是当前目录的原因) ,其中包括driver.class,不包括在内)

相关问题