我在Mac上安装Pl / Java时遇到了麻烦,我们将不胜感激。
我将根据此处的README描述我所做的确切步骤,但我仍然遇到一些我无法解决的错误。
(1)我已下载此版本:pljava-i686-pc-linux-gnu-pg9.0-1.4.2
(2)我在目录中找到了三个文件:pljava.jar
,deploy.jar
,pljava.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
答案 0 :(得分:0)
这听起来像一个问题是没有加载正确的.jar。您在评论中提到,您在使用适当的环境变量时也遇到了问题,指定了加载模块的位置。这实际上可能是您的主要问题。虽然通过查看DYLD_LIBRARY_PATH
可以获得更多选项,看起来等效的环境变量是man dyld
,显然如果你加载了错误的.so或.jar,你会得到这样的错误。