Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 找不到类异常Postgresql。已在pom中导入maven依赖项_Java_Postgresql_Maven_Classnotfoundexception - Fatal编程技术网

Java 找不到类异常Postgresql。已在pom中导入maven依赖项

Java 找不到类异常Postgresql。已在pom中导入maven依赖项,java,postgresql,maven,classnotfoundexception,Java,Postgresql,Maven,Classnotfoundexception,错误为:java:unreportedexception java.lang.ClassNotFoundException;必须捕获或声明要抛出,并发生在以下位置:Class.forName(“org.postgresql.Driver”) 大多数时候,它是奇怪的maven格式或诸如此类,但我认为我有它的权利(复制粘贴)。 下面是pom.xml的 4.0.0 org.example 主课呢 导入java.net.URI; 导入java.net.URISyntaxException; 导入ja

错误为:
java:unreportedexception java.lang.ClassNotFoundException;必须捕获或声明要抛出,并发生在以下位置:
Class.forName(“org.postgresql.Driver”)

大多数时候,它是奇怪的maven格式或诸如此类,但我认为我有它的权利(复制粘贴)。 下面是pom.xml的


4.0.0
org.example

主课呢

导入java.net.URI;
导入java.net.URISyntaxException;
导入java.sql.*;
公共类DBTEST{
publicstaticvoidmain(字符串[]args)抛出SQLException、URISyntaxException{
System.out.println(getConnection());
}
私有静态连接getConnection()抛出URISyntaxException、SQLException{
Class.forName(“org.postgresql.Driver”);
//字符串dbUrl=System.getenv(“数据库URL”);
字符串dbUrl=”postgres://fxeymwfokhsimv:bd5c9975533c20ed3ab4df7c0ea263911207854c2cac46983fafce18689a1161@ec2-184-72-162-198.compute-1.amazonaws.com:5432/dlfvrduvj5qcr”;
返回DriverManager.getConnection(dbUrl);
}
}
数据库主机和数据库
不要担心我共享我的数据库凭据-这是一个测试项目,我只是想知道如何使用它。

Maven默认情况下不会将依赖项打包到jar中,您必须使用插件。 检查此线程-

在使用JDBC4驱动程序时,不需要
Class.forName

程序中的错误是由于使用
Class.forName
时未处理的
ClassNotFoundException
和无效的驱动程序URL造成的。

这是否也适用于使用Intellij运行?问题也存在,因此如果没有,那么可能不仅仅是这样。您必须从getConnection()方法中抛出或处理
ClassNotFoundException
,我认为IDE中的语法检查有问题。eclipse中的这段代码提醒我在使用
Class时处理'ClassNotFoundException'java.sql.SQLException:找不到适合的驱动程序postgres://fxeymwfokhsimv:bd5c9975533c20ed3ab4df7c0ea263911207854c2cac46983fafce18689a1161@ec2-184-72-162-198.compute-1.amazonaws.com:5432/dlfvrduvj5qcr
jdbc url如下所示ostgresql://host/db
,您缺少jdbc前缀,并且postgres应该是postgresql。不确定使用heroku是否会影响任何事情-但是数据库的URL配置变量是
postgres://tzfelalpgpknzs:99cce506d410d89c1ee51f2f8b35eae9c6faacd4b578c29ff18b5e5de3cfcf98@ec2-50-17-90-177.compute-1.amazonaws.com:5432/d7mfkbl2si37vm
。是否有任何方法可以将其格式化为如下所示
jdbc:postgresql://host/db
?此外,它还创建了一个新错误,尽管这可能只是因为我在Heroku服务器上本地运行它。编辑:在Heroku上运行会在线程“main”java.lang.ClassNotFoundException:org.postgresql.Driver中生成以下异常: