2011-07-09 114 views
2

在windows 7 x64和PostgreSQL 9.0上安裝pl/java時出錯。在windows上安裝pljava的問題

CREATE FUNCTION sqlj.java_call_handler() 
    RETURNS language_handler AS 'pljava' 
    LANGUAGE C; 

錯誤:

ERROR: could not load library "C:/Program Files/PostgreSQL/9.0/lib/pljava.dll": The specified module could not be found.

*** Error ***

ERROR: could not load library "C:/Program Files/PostgreSQL/9.0/lib/pljava.dll": The specified module could not be found. SQL state: 58P01

但我敢肯定,pljava.dll用C存在:/ Program Files文件/ PostgreSQL的/ 9.0/lib目錄

+1

最有可能'pljava.dll'取決於其他一些缺少的DLL。請查看[Dependency Walker](http://www.dependencywalker.com/)。 –

回答

9

我發現它可以安裝PL/Windows 7 64位上的PostgreSQL 9.0 64位上的Java過程語言(我的錯誤信息與您的相同)。我看到(C:/Program Files路徑),你的PostgreSQL的64位版本,因此你需要64位 JRE(假設C:\Program Files\Java\jre6):

  • 下載PL/Java的64位二進制 從pgFoundry 包(即, pljava-x86_64-w64-mingw32-pg9.0-1.4.2.tar.gz
  • 解壓存檔C:\Program Files\PostgreSQL\9.0\share\pljava目錄
  • pljava.dllC:\Program Files\PostgreSQL\9.0\lib目錄
  • 添加到postgresql.conf(數據):
custom_variable_classes = 'pljava' 
pljava.classpath='C:\\Program Files\\PostgreSQL\\9.0\\share\\pljava\\pljava.jar'
  • 添加到PATH(我的電腦→屬性→高級→環境變量):
;C:\Program Files\Java\jre6\bin;C:\Program Files\Java\jre6\bin\server

(您可以創建,如果你的另一JRE_HOME變量like然後寫;%JRE_HOME%\bin;%JRE_HOME%\bin\server

After th重新啓動PostgreSQL服務(postgresql-x64-9.0)並再次加載C:\Program Files\PostgreSQL\9.0\share\pljava\install.sql。檢查:

postgres=# SELECT lanname FROM pg_language; 
lanname 
---------- 
internal 
c 
sql 
plpgsql 
java 
javau 
(6 rows) 
0

我有完全相同的錯誤,並按照說明一個T,但仍然是同樣的問題。我發現我的PATH語句包含引號 - 假設我需要它們是因爲目錄名稱中有空格。刪除了jre路徑附近的引號,燈亮起。

希望這會有所幫助!