【发布时间】:2018-12-19 12:10:01
【问题描述】:
我的项目是一个 maven 项目,我使用 JDBC - postgres 驱动程序在 java 程序中运行一些查询。我使用 maven-jar-plugin 在 maven build 上获取可执行 jar。当我将 jar 作为 java -jar xyz.jar 运行时,我得到了
“线程“主”java.lang.ClassNotFoundException中的异常: org.postgresql.Driver"
我检查了 manifest.mf 文件,我可以在类路径中看到 postgres,如下所示:
类路径:postgresql-42.1.4.jar
请支持分辨率。相同的代码在 Java 应用程序中运行良好。只有当它是 jar 文件时才会产生问题。
pom.xml中的Maven-jar-plugin如下:
<dependencies>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.1.4</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>
com.app.App
</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>
【问题讨论】:
-
您是否将其作为 JAR 运行,并将依赖项打包到 JAR 中?如果没有,Postgres JAR 驻留在哪里?看到这个:stackoverflow.com/questions/18413014/…
-
它在 maven 依赖中..就是这样。我已经添加了 pom。
-
当你尝试执行postgresql-42.1.4.jar和你自己的jar在同一个文件夹下吗?如果不是:那是你的问题。
-
有没有办法将所有 maven 依赖项放入同一个 jar 中?喜欢..打包依赖项?
标签: java postgresql maven jdbc