在Windows上安装pljava的问题

时间:2011-07-09 08:15:33

标签: postgresql pljava

在Windows 7 x64和PostgreSQL 9.0上安装pl / java时出错。

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

错误:

  

错误:无法加载库   “C:/程序   文件/ PostgreSQL的/ 9.0 / lib目录/ pljava.dll“:   指定的模块不能   找到。

     

*** 错误 ** *

     

错误:无法加载库   “C:/程序   文件/ PostgreSQL的/ 9.0 / lib目录/ pljava.dll“:   指定的模块不能   找到。 SQL状态:58P01

但我确信在C:/ Program Files / PostgreSQL / 9.0 / lib中存在pljava.dll

2 个答案:

答案 0 :(得分:9)

我发现可以在Windows 7 64位上的PostgreSQL 9.0 64位上安装PL / Java过程语言(我有与你相同的错误消息)。我看到(C:/Program Files路径)你有64位版本的PostgreSQL,所以你需要 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.dll放入C:\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变量然后编写;%JRE_HOME%\bin;%JRE_HOME%\bin\server

之后重新启动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)

答案 1 :(得分:0)

我有完全相同的错误,并按照说明进行了T,但仍然是同样的问题。原来我的PATH语句包含jre包含的引号 - 假设我需要它们,因为目录名中有空格。删除了jre路径周围的引号,灯亮了。

希望这有帮助!