Java:无法使用classpath加载带有jar文件的主类

时间:2014-05-02 16:53:12

标签: java executable-jar

我在执行jar文件时遇到错误。 我已经使用新行设置了我的清单文件,它看起来像这样:

Main-Class: Demo
Class-Path: C:\oraclexe\app\oracle\product\10.2.0\server\jdbc\lib\ojdbc14.jar .

我的主类名是Demo,它位于当前工作目录中。 当我执行jar cfm Project.jar manifest.txt *.class

我的错误是:

Error: Could not find or load main class Demo

主类名和执行目录没有问题,因为当我执行没有类路径的jar文件时,我得到:

Exception in thread "main" java.lang.ClassNotFoundException: oracle.jdbc.OracleDriver
        at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:259)
        at Demo.main(Demo.java:8)

1 个答案:

答案 0 :(得分:1)

根据JAR File Specification(在“主要属性”,“类路径”下,路径应该是相对的而不是绝对的。因此,如果将oracle jdbc jar复制到与jar文件相同的目录中,并更改只是“ojdbc14.jar”的路径,它应该工作。