我刚开始学习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)
3条答案
按热度按时间ipakzgxi1#
如果您使用ant,您可以从主屏幕左侧的 Project 选项卡添加库。在您的项目下有一个 Libraries 文件,在该文件上右键单击并选择 Add JAR/Folder。然后选择您的.jar文件。
如果您使用Maven,请使用Maven Repo查找适当的库,然后在pom.xml中的 dependencies 标记下添加 dependency。然后右键单击您的项目,选择 Build with dependencies 并运行您的项目。
fcy6dtqo2#
2021年11月
如果您的项目是基于Maven的:
1.在项目中转到依赖项文件夹==〉添加依赖项
2.您希望将项目ID命名为my_lib
3.您希望将组ID命名为my_lib
4.您可能会将版本命名为1
5.保留为空
6.按“添加”按钮
然后,新内容应出现在Dependencies文件夹中
7.右键单击那个那个
8.手动安装工件
9.单击浏览以查找JAR文件
10.单击本地安装
我的朋友,你完了
vwoqyblh3#
这是因为您使用的是Maven ...这也让我困惑了一段时间。在Maven项目中没有Libraries属性。您将不得不研究如何在项目中编辑POM.xml文件,并将这些依赖项作为Maven“目标”添加到pom.xml文件(项目文件树中的项目文件夹)中。
示例,用于在我的项目中添加Derby数据库。
正如我所读到的,你要么喜欢Maven,要么不喜欢。我喜欢它。但是在文件中找到要编辑的内容是一个学习曲线。谷歌帮助我...在Maven中添加“某某”依赖项。通常,地方甚至会在你收集库的时候给你一些行来添加到你的pom.xml文件中。
将...在Maven中...添加到您的在线搜索中,以添加库等。
编辑...我找到了这个:
因为我已经明白了这需要在maven做什么,我知道要搜索...
“pom文件编辑以添加PostgreSQL驱动程序”