2

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

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

错误:

错误:无法加载库“C:/Program Files/PostgreSQL/9.0/lib/pljava.dll”:找不到指定的模块。

***错误** *

错误:无法加载库“C:/Program Files/PostgreSQL/9.0/lib/pljava.dll”:找不到指定的模块。SQL 状态:58P01

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

4

2 回答 2

9

我发现可以在 Windows 7 64 位的 PostgreSQL 9.0 64 位上安装 PL/Java 过程语言(我的错误消息与你的相同)。我看到(C:/Program Files路径)你有 64 位版本的 PostgreSQL,所以你需要64 位JRE(假设C:\Program Files\Java\jre6):

  • 从pgFoundry下载 PL/Java 64 位二进制包 (即 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)
于 2011-07-09T12:29:59.360 回答
0

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

希望这可以帮助!

于 2013-06-11T14:38:15.920 回答