java -jar命令问题自问自答 can not find class definition--Class-Path

阅读更多

问:

我写了一个application,同时它有引用了一些其他的jar,例如oracle的jdbc.我在执行的时候,他总是提示我找不到类。可是我明明在class-path里写了阿。
下面是我的manifest文件,谁能告诉我所需的类明明在my.jar中,他怎么会找不到呢?

Manifest-Version: 1.0
Main-Class: com.DesignToolApp
Class-path: lib/client.jar lib/j2ee.jar

 

答:
这个问题我也刚刚遇到过。在MANIFEST.MF文件的最后,要留两个空行(也就是回车),才可以识别到Class-Path这一行,如果只有一个空行,那么只识别到Main-Class这一行。
Class-Path中的库名用空格格开,使用和jar包相对的路径,发布时把jar包和其他用到的类库一起交给用户就可以了。最好再写一个bat文件,很方便:)
例如:你的jar文件存放在d:\project目录下,第三方库存放在d:\project\lib目录下,那么,在MANIFEST.MF中,这样设置:
Class-Path: lib/aaa.jar lib/bb.jar lib/cc.jar

此外,如果想把类库一起包到jar包里面,那么只有把你的类库(一般是jar压缩的吧?)解压,再和你的文件一起打成jar。

你可能感兴趣的:(Java,Oracle,JDBC)