[英]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.