首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在postgres 9.3 for windows 7中使用pljava安装"sqlj“模式时出现的问题

在postgres 9.3 for windows 7中使用pljava安装"sqlj“模式时出现的问题
EN

Stack Overflow用户
提问于 2017-04-18 06:34:41
回答 2查看 421关注 0票数 0

我试图在Windows7 (64位操作系统)上安装Postgres 9.3.16。在使用pljava和以下命令安装sqlj模式时:

代码语言:javascript
复制
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。

在使用命令提示符运行上面的命令时,我得到了这个错误:

代码语言:javascript
复制
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变量也是:

代码语言:javascript
复制
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,它报告了以下丢失的文件:

代码语言:javascript
复制
 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使用反斜杠'\‘作为路径分隔符,而在错误消息中,它试图搜索的路径使用正斜杠'/’。

这会是问题吗?有人能帮我解决这个问题吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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模式被正常填充。

票数 0
EN

Stack Overflow用户

发布于 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运行时安装在哪里。安装说明有详细信息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43465185

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档