Java Postgresql运行时错误
我有几个使用postgres数据库的java应用程序。它们在许多计算机上都工作得很好,但我遇到一台计算机抛出运行时错误。我已经仔细检查了我的数据库配置,没有发现错误 我运行的抛出错误的代码是:Java Postgresql运行时错误,java,postgresql,runtime-error,Java,Postgresql,Runtime Error,我有几个使用postgres数据库的java应用程序。它们在许多计算机上都工作得很好,但我遇到一台计算机抛出运行时错误。我已经仔细检查了我的数据库配置,没有发现错误 我运行的抛出错误的代码是: this.connection = DriverManager.getConnection(this.connectionStr, this.username, this.password); 其中this.connectionStr先前设置为 this.conn
this.connection = DriverManager.getConnection(this.connectionStr,
this.username, this.password);
其中this.connectionStr先前设置为
this.connectionStr = "jdbc:postgresql://" + this.server + ":"
+ this.port + "/" + this.database;
我不知道从这里到哪里去。任何帮助都会很好
运行时错误如下所示,其中PostgresHandler.java:70是我上面展示的代码
Exception in thread "main" java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoa der.java:58) Caused by: java.lang.UnsatisfiedLinkError: java.lang.StrictMath.floor(D)D
at java.lang.StrictMath.floor(Native Method)
at java.lang.Math.floor(Unknown Source)
at sun.misc.FloatingDecimal.dtoa(Unknown Source)
at sun.misc.FloatingDecimal.<init>(Unknown Source)
at java.lang.Double.toString(Unknown Source)
at java.lang.String.valueOf(Unknown Source)
at java.security.Provider.putId(Unknown Source)
at java.security.Provider.<init>(Unknown Source)
at sun.security.provider.Sun.<init>(Unknown Source)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Sou rce)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at sun.security.jca.ProviderConfig$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.security.jca.ProviderConfig.doLoadProvider(Unknown Source)
at sun.security.jca.ProviderConfig.getProvider(Unknown Source)
at sun.security.jca.ProviderList.getProvider(Unknown Source)
at sun.security.jca.ProviderList.getService(Unknown Source)
at sun.security.jca.GetInstance.getInstance(Unknown Source)
at java.security.Security.getImpl(Unknown Source)
at java.security.MessageDigest.getInstance(Unknown Source)
at org.postgresql.util.MD5Digest.encode(MD5Digest.java:46)
at org.postgresql.core.v3.ConnectionFactoryImpl.doAuthentication(Connect ionFactoryImpl.java:328)
at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(Conne ctionFactoryImpl.java:95)
at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactor y.java:66)
at org.postgresql.jdbc2.AbstractJdbc2Connection.<init>(AbstractJdbc2Conn ection.java:124)
at org.postgresql.jdbc3.AbstractJdbc3Connection.<init>(AbstractJdbc3Conn ection.java:30)
at org.postgresql.jdbc4.AbstractJdbc4Connection.<init>(AbstractJdbc4Conn ection.java:29)
at org.postgresql.jdbc4.Jdbc4Connection.<init>(Jdbc4Connection.java:24)
at org.postgresql.Driver.makeConnection(Driver.java:386)
at org.postgresql.Driver.connect(Driver.java:260)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at db.PostgresHandler.connect(PostgresHandler.java:70)
at db.PostgresHandler.<init>(PostgresHandler.java:47)
at db.DBInsertHandler.<init>(DBInsertHandler.java:16)
at Server.main(Server.java:62)
... 5 more
线程“main”java.lang.reflect.InvocationTargetException中的异常
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(未知源)
在sun.reflect.DelegatingMethodAccessorImpl.invoke处(未知源)
位于java.lang.reflect.Method.invoke(未知源)
在org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoa der.java:58)上,由以下原因引起:java.lang.unsatifiedlinkerror:java.lang.StrictMath.floor(D)D
位于java.lang.StrictMath.floor(本机方法)
位于java.lang.Math.floor(未知源)
在sun.misc.FloatingDecimal.dtoa(未知源)
在sun.misc.FloatingDecimal(未知源)
位于java.lang.Double.toString(未知源)
位于java.lang.String.valueOf(未知源)
位于java.security.Provider.putId(未知源)
位于java.security.Provider。(未知源)
位于sun.security.provider.sun。(未知来源)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(未知源)
在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(未知资源)处
位于java.lang.reflect.Constructor.newInstance(未知源)
位于java.lang.Class.newInstance0(未知源)
位于java.lang.Class.newInstance(未知源)
位于sun.security.jca.ProviderConfig$3.run(未知源)
位于java.security.AccessController.doPrivileged(本机方法)
位于sun.security.jca.ProviderConfig.doLoadProvider(未知源)
位于sun.security.jca.ProviderConfig.getProvider(未知源)
位于sun.security.jca.ProviderList.getProvider(未知源)
位于sun.security.jca.ProviderList.getService(未知源)
位于sun.security.jca.GetInstance.GetInstance(未知源)
位于java.security.security.getImpl(未知源)
位于java.security.MessageDigest.getInstance(未知源)
位于org.postgresql.util.MD5Digest.encode(MD5Digest.java:46)
在org.postgresql.core.v3.ConnectionFactoryImpl.doAuthentication(ConnectionFactoryImpl.java:328)
位于org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:95)
位于org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactor y.java:66)
位于org.postgresql.jdbc2.AbstractJdbc2Connection。(AbstractJdbc2Connection.java:124)
位于org.postgresql.jdbc3.AbstractJdbc3Connection。(AbstractJdbc3Connection.java:30)
位于org.postgresql.jdbc4.AbstractJdbc4Connection。(AbstractJdbc4Conn.java:29)
位于org.postgresql.jdbc4.Jdbc4Connection(Jdbc4Connection.java:24)
位于org.postgresql.Driver.makeConnection(Driver.java:386)
位于org.postgresql.Driver.connect(Driver.java:260)
位于java.sql.DriverManager.getConnection(未知源)
位于java.sql.DriverManager.getConnection(未知源)
位于db.PostgresHandler.connect(PostgresHandler.java:70)
位于db.PostgresHandler(PostgresHandler.java:47)
位于db.DBInsertHandler。(DBInsertHandler.java:16)
位于Server.main(Server.java:62)
... 还有5个
检查类路径,确保问题服务器/主机上安装了驱动程序jar 反射错误通常意味着您拼错了类名,或者忘记将库与类一起添加。我从来没有这样做过:-)
或者,可能您的驱动程序的旧版本没有完全实现新的接口???检查您的类路径,确保驱动程序jar安装在问题服务器/主机上 反射错误通常意味着您拼错了类名,或者忘记将库与类一起添加。我从来没有这样做过:-)
或者,您可能有一个旧版本的驱动程序,它没有完全实现新的接口???看起来您正在使用Eclipse的jar-in-jar加载程序。你试过用第一级JAR文件运行这个程序吗
如果这样做行得通,那么对jar文件的多个级别进行反jar就会出现问题。我能想到的唯一原因是病毒扫描程序。看起来您正在使用Eclipse的jar-in-jar加载程序。你试过用第一级JAR文件运行这个程序吗
如果这样做行得通,那么对jar文件的多个级别进行反jar就会出现问题。我能想到的唯一原因是病毒扫描程序。我猜您运行的是JVM的5.0之前版本。您使用的jar版本取决于StrictMath,它是5.0版本。您使用的是1.4JVM吗?我猜您运行的是5.0之前版本的jvm。您使用的jar版本取决于StrictMath,它是5.0版本。您使用的是1.4 jvm吗?这为我解决了这个问题。然而,问题的根源是java有多个版本,包括JDK和JRE,因此我需要的外部jar没有被正确引用。这为我解决了这个问题。然而,问题的根源是java有多个版本,包括JDK和JRE,因此我需要的外部jar没有被正确引用。