簡體   English   中英

我似乎無法將 Java 庫添加到 Apache Netbeans 11.3

[英]I cannot seem to be able to add Java libraries to Apache Netbeans 11.3

我開始進行 Java 編程,我有一個裝有 Java 1.8.0_242 OpenJDK 的 CentOS 7.7.1908 VM,我的 IDE 是 Apache Netbeans 11.3。 我正在嘗試開發一個小程序來從標准輸入讀取數據並將其保存到 PostgreSQL 數據庫中。 為了做到這一點,我需要將我的程序構建到一個 .jar 文件中並從命令行運行它,因為它的預期用途是將另一個程序的標准輸出通過管道傳輸到我的 Java 程序中。 Apache Netbeans 已經附帶了一個捆綁的 PostgreSQL 驅動程序,我可以在“服務”選項卡的“驅動程序”部分中正確添加一個連接,並且我還可以在該選項卡中正確瀏覽我的數據庫模式。

但是,當我嘗試將 PostgreSQL 驅動程序包含為我的項目庫時,我在項目屬性窗口中看不到任何“庫”部分,如下所示。 顯然這會阻止我繼續我的程序,因為我只是嘗試設置 Apache Maven 以在我的 .jar 的清單中添加一個Class-Path條目,通過使用java -cp <directory of my PGSQL driver> -jar <JAR file>運行我的 .jar 手動傳遞類路徑java -cp <directory of my PGSQL driver> -jar <JAR file> ,設置了一個 CLASSPATH 環境變量,但它們都沒有工作; 我的程序一直拒絕加載 PostgreSQL JDBC 驅動程序。

這是我在 NetBeans 的“屬性”對話框中看到的內容:

在此處輸入圖片說明

這是我的代碼,盡可能簡化以僅顯示相關部分。

  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)

2021年11月

如果您的項目是基於 Maven 的:

1.你的項目中進入依賴文件夾==>添加依賴

2.您希望將Artifact Id命名為my_lib

3.您希望將Group Id命名為my_lib

4.你可能將版本命名為1

5.請假一直空着

6. 按添加

然后新東西應該出現在 Dependencies 文件夾中

7. 右鍵單擊​​那個

8.手動安裝神器

9.點擊Browse 尋找 JAR 文件

10.點擊本地安裝

你已經完成了我的朋友

這是因為您正在使用 Maven ……這也讓我難住了一段時間。 該 Libraries 屬性在 Maven 項目中不存在。 您將不得不研究如何編輯項目中的 POM.xml 文件,並將這些依賴項作為 Maven '目標' 添加到 pom.xml 文件(項目文件樹中的項目文件夾)中。

例如,用於在我的項目中添加 Derby 數據庫。

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

正如我所讀到的,您要么喜歡 Maven,要么不喜歡。 我喜歡它。 但是,找到要在文件中進行的編輯以包含內容是一個學習曲線。 谷歌幫助我......在 maven 中添加“某某”依賴項。 通常,地方甚至會在您收集庫時為您提供要添加到 pom.xml 文件的行。

在 Maven ... 中添加 ... 到您的在線搜索以添加庫等。

編輯...我發現這個:

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

因為我已經了解這需要如何在 Maven 中完成,所以我知道要搜索......

“修改 pom 文件以添加 PostgreSQL 驅動程序”

如果您使用 ant,您可以從主屏幕左側的項目選項卡中添加庫。 在您的項目下有一個文件,在該文件上右鍵單擊並選擇Add JAR/Folder 然后選擇您的 .jar 文件。

如果您使用Maven,請使用Maven Repo找到合適的庫,然后在pom.xml 中的dependencies標簽下添加依賴項 然后右鍵單擊您的項目並選擇使用依賴項構建並運行您的項目。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM