centos 我似乎无法将Java库添加到Apache Netbeans 11.3中

3mpgtkmj  于 2022-11-07  发布在  Java
关注(0)|答案(3)|浏览(172)

我刚开始学习Java编程,我有一个CentOS 7.7.1908 VM和Java 1.8.0_242 OpenJDK,我的IDE是Apache Netbeans 11.3。我正在尝试开发一个小程序,从标准输入中读取数据并将其保存到PostgreSQL数据库中。为了做到这一点,我需要将程序构建成一个.jar文件,并从命令行运行它。因为它的用途是通过管道将另一个程序的标准输出输入到我的Java程序中。ApacheNetbeans已经附带了一个捆绑的PostgreSQL驱动程序,我可以在Services选项卡的Drivers部分正确地添加一个连接,并且我还可以在该选项卡中正确地浏览我的数据库模式。
然而,当我尝试将PostgreSQL驱动程序作为我的项目的库包含进来时,我在项目属性窗口中看不到任何“Library”部分,如图所示。显然,这将阻止我继续我的程序,因为我刚刚尝试设置ApacheMaven在我的.jar清单中添加一个Class-Path条目,通过使用java -cp <directory of my PGSQL driver> -jar <JAR file>运行我的.jar来手动传递类路径,设置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)
ipakzgxi

ipakzgxi1#

如果您使用ant,您可以从主屏幕左侧的 Project 选项卡添加库。在您的项目下有一个 Libraries 文件,在该文件上右键单击并选择 Add JAR/Folder。然后选择您的.jar文件。
如果您使用Maven,请使用Maven Repo查找适当的库,然后在pom.xml中的 dependencies 标记下添加 dependency。然后右键单击您的项目,选择 Build with dependencies 并运行您的项目。

fcy6dtqo

fcy6dtqo2#

2021年11月

如果您的项目是基于Maven的:

1.项目中转到依赖项文件夹==〉添加依赖项
2.您希望将项目ID命名为my_lib
3.您希望将组ID命名为my_lib
4.您可能会将版本命名为1
5.保留为空
6.按“添加”按钮

然后,新内容应出现在Dependencies文件夹中

7.右键单击那个那个
8.手动安装工件
9.单击浏览以查找JAR文件
10.单击本地安装

我的朋友,你完了

vwoqyblh

vwoqyblh3#

这是因为您使用的是Maven ...这也让我困惑了一段时间。在Maven项目中没有Libraries属性。您将不得不研究如何在项目中编辑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驱动程序”

相关问题