在MAC上安装PL / Java

时间:2011-07-24 05:37:04

标签: java postgresql pljava

我在Mac上安装Pl / Java时遇到了麻烦,我们将不胜感激。

我将根据此处的README描述我所做的确切步骤,但我仍然遇到一些我无法解决的错误。

(1)我已下载此版本:pljava-i686-pc-linux-gnu-pg9.0-1.4.2

(2)我在目录中找到了三个文件:pljava.jardeploy.jarpljava.so

(3)我把两个 .jars 放在里面:/Library/PostgreSQL/9.0/lib

(4)我把 .so 放在里面:/Library/PostgreSQL/9.0/data

(5)我修改了postgresql.conf如下:

dynamic_library_path = '$libdir'
custom_variable_classes = 'pljava'
pljava.classpath = '/Library/PostgreSQL/9.0/lib/pljava.jar’

(6)我也尝试过:

dynamic_library_path = '$libdir:/Library/PostgreSQL/9.0/lib/'    (as well as...)
dynamic_library_path = '$libdir:/Library/PostgreSQL/9.0/data/'

(7)然后我试着跑:

Select sqlj.install_jar('/Software/Libraries/test_trigger.jar', 'samples', false);
Select sqlj.set_classpath(‘public’, ‘samples’);

虽然,我一直收到这个错误:

WARNING:  java.lang.NoSuchMethodError: Method org.postgresql.pljava.internal.Portal._fetch(JZI)I not found

ERROR:  Unable to register native methods

********** Error **********

ERROR: Unable to register native methods
SQL state: XX000

1 个答案:

答案 0 :(得分:0)

这听起来像一个问题是没有加载正确的.jar。您在评论中提到,您在使用适当的环境变量时也遇到了问题,指定了加载模块的位置。这实际上可能是您的主要问题。虽然通过查看DYLD_LIBRARY_PATH可以获得更多选项,看起来等效的环境变量是man dyld,显然如果你加载了错误的.so或.jar,你会得到这样的错误。