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

没有找到适合jdbc的驱动程序:postgresql://localhost:5432/gis

韩经武
2023-03-14

我已经花了3个小时试图让我的Java程序与我的Postgres服务器接口。我无法通过错误消息“没有找到适合jdbc:postgresql://localhost:5432/gis的驱动程序”。这是一个Bukkit插件,我正在使用IntelliJ IDEA。

代码:

try
{
    //Class.forName("org.postgresql.Driver");
    c = DriverManager.getConnection("jdbc:postgresql://localhost:5432/gis");
}
catch(Exception e)
{
        getLogger().info(e.getMessage());
}

我尝试过的事情:

>

  • java-cp./path/to/postgresjdbc.jar-jarspigot-1.15.2.jar

    直接将jdbc文件内部添加到jar文件中

    在IntelliJ项目中添加jdbc文件作为依赖项

    切换到maven,并将以下内容放入pom.xml:

        <dependencies>
            <dependency>
                <groupId>org.postgresql</groupId>
                <artifactId>postgresql</artifactId>
                <version>42.2.1</version>
            </dependency>
        </dependencies>
    

    我无法克服我发布的错误。在这一点上,它占据了我整个晚上。

  • 共有1个答案

    严狐若
    2023-03-14

    在开发使用MySQL数据库的Bukkit/Spigot插件时,我曾多次遇到这个问题。Postgres的过程应该是相同的。

    通常,当您的插件找不到PostgresqlJDBC驱动程序时会发生此错误。您有两个解决方法:

    选项1.将.jar添加到插件的类路径:

    建议您在plugins/lib中设置库,因为这样您的服务器就不会尝试将库作为Bukkit插件加载。通过在pom.xml中添加此配置,将前缀lib/添加到类路径:

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <configuration>
            <archive>
                <manifest>
                    <addClasspath>true</addClasspath> <-- don't know if this is needed -->
                    <classpathPrefix>lib/</classpathPrefix>
                </manifest>
            </archive>
        </configuration>
    </plugin>
    

    然后确保将您的postgresjdbc。jar位于插件文件夹中名为lib的文件夹中。

    选项2。直接在jar中添加依赖项:

    请注意,此选项将增加插件的jar大小。

    这可以通过Maven的组装插件完成:

    <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <executions>
            <execution>
                <phase>package</phase>
                <goals>
                    <goal>single</goal>
                </goals>
            </execution>
        </executions>
        <configuration>
            <descriptorRefs>
                <descriptorRef>jar-with-dependencies</descriptorRef>
            </descriptorRefs>
            <archive>
                <manifest>
                    <mainClass>your.main.class</mainClass>
                </manifest>
            </archive>
        </configuration>
    </plugin>
    

    如果您使用7-zip之类的文件压缩器打开插件的jar,您应该在其中包含驱动程序类,而不是插件类。

    如果这解决了你的问题,请告诉我。

     类似资料: