2017-04-18 59 views
0

我想在Windows7(64位操作系統)上安裝Postgres 9.3.16。在使用pljava安裝SQLJ模式和下面的命令:在postgres 9.3 for windows 7中使用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驅動下載這個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 Walker,併爲下列文件丟失報告

我跑帶命令提示符上面的命令,而得到這個錯誤:

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使用反斜槓'\'作爲路徑分隔符,而在錯誤消息中嘗試搜索的路徑使用正斜槓'/'。

這可能是問題嗎?任何人都可以幫我解決這個問題嗎?

回答

0

掙扎了一會兒後,終於將其與下面的修復工作:

我說我pljava.dll路徑到我的PATH變量即

C:\軟件\ PostgreSQL的\ 9.3 \共享在PATH變量。

另外,我修改和我的postgresql.conf加入下列變量:

dynamic_library_path裏= 'C:\軟件\的PostgreSQL \ 9.3 \共享\ pljava'

之後我SQLJ模式是填充一般。

0

我想知道你想要安裝什麼版本的PL/Java?使用Deployer的舊程序已經過時了。你有PostgreSQL 9.3.x,所以它有CREATE EXTENSION命令。如果你構建或獲得一罐PL/Java 1.5.0,你所做的只是運行它(與java -jarjarname)...只要確保包含pg_config的目錄在你的PATH上,那麼jar安裝程序找出其餘的。在psql然後,只是說CREATE EXTENSION pljava;

您可能必須設置一個變量,以告訴它在哪裏安裝Java運行時。 installation instructions有詳細信息。