我试图在Windows7 (64位操作系统)上安装Postgres 9.3.16。在使用pljava和以下命令安装sqlj模式时:
java -cp "C:\Softwares\PostgreSQL\9.3\share\pljava\deploy.jar;C:\Softwares\pgJDBC\postgresql-42.0.0.jar" org.postgresql.pljava.deploy.Deployer -install -user postgres -database sampledb -password xyz我从stackbuilder驱动程序下载了这个JDBC。
在使用命令提示符运行上面的命令时,我得到了这个错误:
org.postgresql.util.PSQLException: ERROR: could not load library "C:/Softwares/PostgreSQL/9.3/lib/pljava.dll": The specified module could not be found.
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2412)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2125)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:297)
at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:428)
at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:354)
at org.postgresql.jdbc.PgStatement.executeWithFlags(PgStatement.java:301)
at org.postgresql.jdbc.PgStatement.executeCachedSql(PgStatement.java:287)
at org.postgresql.jdbc.PgStatement.executeWithFlags(PgStatement.java:264)
at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:260)
at org.postgresql.pljava.deploy.Deployer.initJavaHandlers(Deployer.java:485)
at org.postgresql.pljava.deploy.Deployer.main(Deployer.java:275)我的Path变量也是:
C:\Windows\System32\WindowsPowerShell;C:\Windows;C:\Windows\System32\wbem;C:\Softwares\PostgreSQL\9.3\share;C:\Softwares\PostgreSQL\9.3\lib;C:\Windows\System32;C:\Softwares\PostgreSQL\9.3\bin;C:\Program Files
Java\jdk1.8.0_121\bin;C:\Program Files\Java\jdk1.8.0_121\jre\bin; C:\Program Files\Java\jdk1.8.0_121\jre\bin\server;C:\Program Files\Intel\iCLS Client;C:\Program Files (x86)\Intel\iCLS Client;C:\Program Files
Internet Explorer;C:\Program Files\Java\jdk1.8.0_121\bin;C:\Program Files\Java\jdk1.8.0_121\jre\bin; C:\Program Files\Java\jdk1.8.0_121\jre\bin\server; C:\Program Files\Java\jdk1.8.0_121; C:\Program Files\Jav
\jdk1.8.0_121\jre我使用了dependency,它报告了以下丢失的文件:
API-MS-WIN-CORE-WINRT-ERROR-L1-1-0.DLL
API-MS-WIN-CORE-WINRT-L1-1-0.DLL
API-MS-WIN-CORE-WINRT-ROBUFFER-L1-1-0.DLL
API-MS-WIN-CORE-WINRT-STRING-L1-1-0.DLL我已尽了一切努力,但未能解决这个问题。但是,我注意到Windows使用反斜杠'\‘作为路径分隔符,而在错误消息中,它试图搜索的路径使用正斜杠'/’。
这会是问题吗?有人能帮我解决这个问题吗?
发布于 2017-04-19 07:05:11
在挣扎了一段时间之后,它终于使用了以下修复方法:
我将pljava.dll路径添加到path变量中,即
C:\Software\PostgreSQL\9.3\共享路径变量。
此外,我在postgresql.conf中修改并添加了以下变量:
dynamic_library_path='C:\Softwares\PostgreSQL\9.3\share\pljava‘
之后,我的sqlj模式被正常填充。
发布于 2017-05-13 06:17:44
我想知道你想安装什么版本的PL/Java?使用Deployer的旧过程有点过时。您有PostgreSQL 9.3.x,所以它有CREATE EXTENSION命令。如果您构建或获得PL/Java1.5.0的jar,则只需运行该jar(使用java -jarjar名称).当您这样做时,只要确保包含pg_config的目录在您的PATH上,jar安装程序就会计算出其余的内容。那么,在psql中,只需说CREATE EXTENSION pljava;
您可能需要设置一个变量来告诉它您的Java运行时安装在哪里。安装说明有详细信息。
https://stackoverflow.com/questions/43465185
复制相似问题