Кажется, я не могу добавить Java библиотеки к Apache Netbeans 11.3 - PullRequest
0 голосов
/ 05 марта 2020

Я приступил к программированию Java, у меня есть виртуальная машина CentOS 7.7.1908 с Java 1.8.0_242 OpenJDK, и моя IDE Apache Netbeans 11.3. Я пытаюсь разработать небольшую программу для чтения данных из стандартного ввода и сохранения их в базе данных PostgreSQL. Для этого мне нужно собрать свою программу в файл .jar и запустить ее из командной строки, поскольку она предназначена для передачи стандартного вывода другой программы в мою Java программу. Apache Netbeans уже поставляется с прилагаемым PostgreSQL драйвером, я мог бы правильно добавить соединение на вкладке «Службы», раздел «Драйверы», и я мог бы также правильно просмотреть схему базы данных на этой вкладке.

Однако, когда Я пытаюсь включить драйвер PostgreSQL в качестве библиотеки моего проекта, я не вижу ни одного раздела «Библиотека» в окне свойств проекта, как показано здесь. Очевидно, это не позволит мне продолжить работу с моей программой, потому что я просто попытался настроить Apache Maven для добавления записи Class-Path в манифест моего .jar, вручную передавая путь к классу, запустив мой .jar с java -cp <directory of my PGSQL driver> -jar <JAR file>, установка переменной среды CLASSPATH, и ни одна из них не сработала; моя программа продолжает отказываться загружать драйвер PostgreSQL JDB C.

Вот что я вижу в диалоговом окне "Свойства" в моем NetBeans:

enter image description here

Это мой код, максимально упрощенный для отображения только соответствующих разделов.

  package com.example.pgsqlclient;

  import java.sql.*;
  import java.io.*;
  import java.util.Scanner;

  public class PGsqlClient
  {
     public static void main(String args[])
     {
        Connection PGSQL_connection = null;
        String PGSQL_URI = "jdbc:postgresql://192.168.1.74:5432/keypresses";
        PreparedStatement PGSQL_query = null;

        try
        {
           Class.forName("org.postgresql.Driver");
        } 
        catch (ClassNotFoundException ex)
        {
           System.err.println("PostgreSQL driver not found.");
           ex.printStackTrace();
           System.exit(1);
        }

        try { PGSQL_conexion.close();} 
        catch (SQLException ex) 
        { System.err.println("Failed to close the PostgreSQL connection."); System.exit(1); }
        System.exit(0);
     }
  }

И это то, что я получаю, когда запускаю свой файл .jar

[centos@centos target]$ java -cp /home/centos/NetBeansProjects/pgsqlclient/target/lib/postgresql-42.2.10.jar -jar pgsqlclient-1.0-SNAPSHOT.jar 
PostgreSQL driver not found.
java.lang.ClassNotFoundException: org.postgresql.Driver
        at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:419)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:352)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:264)
        at com.example.pgsqlclient.PGsqlCliente.main(PGsqlCliente.java:28)

Ответы [ 2 ]

0 голосов
/ 05 марта 2020

Если вы используете ant, вы можете добавить библиотеку из вкладки Project в левой части главного экрана. Под вашим проектом есть файл Библиотеки , щелкните по нему правой кнопкой мыши и выберите Добавить JAR / Папка . Затем выберите файл .jar.

Если вы используете Maven, используйте Maven Repo , чтобы найти подходящую библиотеку, затем добавьте зависимость в тег зависимости в пом. xml. Затем щелкните правой кнопкой мыши свой проект и выберите Построить с зависимостями и запустите ваш проект.

0 голосов
/ 05 марта 2020

Это из-за того, что вы используете Maven ... это меня тоже немного озадачило. Это свойство библиотеки отсутствует в проекте Maven. Вам нужно будет изучить, как вносить изменения в ваш файл POM. xml в вашем проекте, и добавить эти зависимости как «цель» Maven в файл pom. xml (папка файлов проекта в файле вашего проекта. tree.)

Пример добавления базы данных Derby в мои проекты.

    <dependency>
      <groupId>org.apache.derby</groupId>
      <artifactId>derby</artifactId>
      <version>10.8.3.0</version>
    </dependency>  

Как я уже читал, вы либо любите Maven, либо, возможно, нет. Я люблю это. Но это небольшая кривая обучения, чтобы найти изменения, которые нужно внести в файл, чтобы включить вещи. Google помог мне ... добавить зависимость "так и так" в maven. Часто места даже дают вам строки для добавления в файл pom. xml, пока вы собираете библиотеку.

Добавить ... в Maven ... к своим поискам в Интернете для добавления библиотек и т. Д. c.

Изменить ... Я нашел это:

<dependency>
    <groupId>postgresql</groupId>
    <artifactId>postgresql</artifactId>
    <version>VERSION</version>
</dependency>

Поскольку я понял, как это нужно сделать в Maven, я знал, что нужно искать ...

"изменения в pom-файле для добавления PostgreSQL драйвера"

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