Не найден подходящий драйвер для jdb c: postgresql: // localhost: 5432 / gis - PullRequest
0 голосов
/ 04 апреля 2020

Последние 3 часа я пытался заставить мою программу Java взаимодействовать с моим Postgres сервером. Не удается получить сообщение об ошибке «Не найден подходящий драйвер для jdb c: 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 -jar spigot-1.15.2.jar

  • добавление внутренних компонентов файла jdb c непосредственно в мой файл jar

  • добавление файла jdb c в качестве зависимости внутри Проект IntelliJ

  • переключение на maven и добавление в помп следующего: xml:

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

Я не могу пройти ошибку я выложил. В этот момент он занял весь мой вечер.

1 Ответ

0 голосов
/ 04 апреля 2020

Я несколько раз сталкивался с этой проблемой при разработке плагинов Bukkit / Spigot, которые используют базы данных MySQL. Процесс для Postgres должен быть таким же.

Обычно эта ошибка возникает, когда ваш плагин не может найти драйвер PostgresqlJDB C. У вас есть два обходных пути:

Вариант 1. Добавление .jar к пути к классу плагина:

Рекомендуется установить библиотеки внутри plugins/lib как ваш сервер не будет пытаться загрузить библиотеки как плагин Bukkit. Добавьте префикс lib/ к вашему пути к классам, добавив эту конфигурацию в pom.xml:

<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, то в нем должны быть классы драйверов, кроме вашего

Дайте мне знать, если это решило вашу проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...