【发布时间】:2018-11-12 11:41:20
【问题描述】:
我正在构建一个 java 服务器程序,它使用 JDBC 驱动程序连接到 psql 数据库。我需要在 .jar 文件中编译程序,但是当我尝试这样做并运行它时,我得到了这个异常。 (程序必须在linux机器上运行)
java.lang.ClassNotFoundException: org.postgresql.Driver 在 java.net.URLClassLoader.findClass(URLClassLoader.java:381) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:424) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:357) 在 java.lang.Class.forName0(本机方法) 在 java.lang.Class.forName(Class.java:264) 在 Server.connectToDatabase(Server.java:53) 在服务器上。(Server.java:33) 在 Main.main(Main.java:10)
由于程序在 IntelliJ 编辑器上运行良好,我认为问题在于 jar 文件中没有 jdbc 驱动程序。如何添加?
【问题讨论】:
-
你能告诉我们
jar tf [jarfile]的输出吗?尤其是Main.main和驱动文件。 -
将驱动 jar 添加到类路径中。参考timjansen.github.io/jarfiller/javabasics/jar/libraries.xhtml
-
执行时需要在classpath下添加驱动。外部依赖项(其他库,如 JDBC 驱动程序)通常不包含在应用程序 Jar 中。如果您愿意,您需要采取额外的步骤(这可能会导致进一步的并发症)。
标签: java jdbc-postgres