我在一个文件夹中有一个类和一个 jar。sqlite-jdbc-3.7.2.jar dbBuilder.class
要运行 dbBuilder.class 我在命令行上运行它:
java -classpath ".:sqlite-jdbc-3.7.2.jar" dbBuilder
现在,如果我想将这两个 Jar 组合在一起,我将创建一个如下所示的清单:
Main-Class: dbBuilder
Class-Path: sqlite-jdbc-3.7.2.jar
我编译它:
jar cfm dbTest.jar Manifest.txt dbBuilder.class sqlite-jdbc-3.7.2.jar
然后运行它:
java -jar dbBuilder.jar
我得到了这个堆栈跟踪:
线程“main”中的异常 java.lang.ClassNotFoundException: org.sqlite.JDBC at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net。 URLClassLoader.findClass(URLClassLoader.java:190) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:306) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 在 java.lang.ClassLoader.loadClass (ClassLoader.java:247) 在 java.lang.Class.forName0(Native Method) 在 java.lang.Class.forName(Class.java:171) 在 dbBuilder.createTables(dbBuilder.java:22) 在 dbBuilder.main( dbBuilder.java:67)
我很困惑,因为我在没有 jar 的情况下运行它时使用的类路径与我放入清单中的类路径不同,但我尝试使用我用来将其作为类运行并将其放入清单中的类路径那也没有用。所以我不知道如何编译它,还要跟进 - 一旦我让这个 dbBuilder.jar 工作,我能再次 jar 并仍然访问 sqlite 类吗?提前致谢 !!