当前位置: 首页 > 知识库问答 >
问题:

ClassNotFoundException:org。postgresql。作为jar文件运行项目时的驱动程序

穆俊杰
2023-03-14

我的项目是一个maven项目,我使用JDBC-postgres驱动程序在java程序中运行一些查询。我使用maven-jar插件在maven构建上获得一个可执行的jar。当我以java-jarxyz.jar运行jar时,我得到

"线程"main"中的异常java.lang.ClassNotFound异常:org.postgresql.驱动程序"

我检查manifest.mf文件,我可以看到postgres在类路径如下:

类路径:postgresql-42.1.4。罐子

请支持决议。这段代码与Java应用程序一样运行良好。只有当它是jar文件时,才会产生问题。

pom.xml的maven-jar插件如下:

 <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>

共有1个答案

邓仲卿
2023-03-14

看起来postgresql工件没有打包到xyz中。罐子在您的情况下,postgresql jar必须与xyz处于同一级别。jar-xyz。jar-postgresql-42.1.4。罐子

这就行了。

对于java应用程序,所需的jar安装在一个lib文件夹中,应用程序从该文件夹中解析依赖关系。

 类似资料:
  • 我有一个Java应用程序,它位于我编译为可执行jar文件的系统托盘中。我想在我的程序中添加添加到系统启动项的选项。 由于我不知道有什么统一的方法可以为所有操作系统做到这一点,我假设我必须为我打算支持的每个操作系统编写代码,所以我从Windows开始。 当我试图使用此处可用的代码将其添加到注册表中时,我发现在Windows 7和8下,除非我具有管理员权限(通过从提升的命令提示符运行),否则我对注册表

  • 我做了一个名为诊所的项目,它有3个jframe 登录 它连接到Access数据库(.mdb)。 我将其转换为JAR文件,但它给我的错误,它没有连接到UCanAccess驱动程序。 我甚至尝试了SQLite管理器,但也有同样的问题。我使用的是netbean 8。我只是直接选择了清洁和构建选项来制作jar文件。希望这能有所帮助。

  • 我在Eclipse中使用了马拉松式的JAVA驱动程序,当我运行Eclipse中的代码时,它工作得很好。但是,当我将项目导出为可运行的JAR文件,然后执行该JAR文件时,我会得到以下错误,并且应用程序没有启动。 在org.eclipse.jdt.internal.jarinjarloader.jarrsrcloader.main(jarrsrcloader.java:61)由:java.lang.N

  • 当我运行访问目录中其他文件的jar文件时,我得到以下: 线程“main”java.nio.file.nosuchfileException异常:src\filetobeaccessed.txt.lck在sun.nio.fs.windowsException.translateToioException(未知源)在sun.nio.fs.windowsException.reshrowasioExce

  • 我知道以前也有人问过类似的问题。但是不知何故,我无法让我的工作成功。以下是我已经尝试过的步骤。 > 我创建了一个bat文件为并放入启动文件夹中。它适用于当前用户。这没有帮助,因为我想在所有用户登录PC后为他们运行此文件。 我以HKEY\U local\U machine的身份创建了关键价值 所以我有windows 10 64位计算机和需要放在这些计算机上的jar文件。任何用户登录后,都需要运行ja

  • 如何运行? 这就是我得到的错误。