微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

安装pljava

pljava是pgsql跟java的桥接,安装以后就可以在pgsql里面调用java了。这里记录一下我在ubuntu server下安装的过程

1. 下载源码编译

很简单,下载,解压,设置一下JAVA_HOME(如果没设的话),然后make

2. 把生成的build目录里面的所有内容安装到任一地方,我的是/opt/Postgresql/pljava

$ ls -l /opt/Postgresql/pljava
总用量 212
drwxr-xr-x 5 test test   4096 2012-06-07 13:20 classes
-rw-r--r-- 1 test test   5258 2012-06-07 13:19 deploy.jar
-rw-r--r-- 1 test test  43281 2012-06-07 13:20 examples.jar
drwxr-xr-x 2 test test   4096 2012-06-07 13:19 jni
drwxr-xr-x 3 test test   4096 2012-06-07 13:20 objs
-rw-r--r-- 1 test test 150172 2012-06-07 13:19 pljava.jar

3. 将objs/pljava.so复制到$PG_INSTALL/lib/postgresql下面

4. jvm.so必须在系统lib路径里,ubuntu下这么做:

cd /etc/ld.so.conf.d
vi java.conf

把包含jvm.so的目录写进去,我这里是:/usr/lib/jvm/default-java/jre/lib/amd64/server

然后: ldconfig -v,应该可以在输出里看到jvm.so的装入:

/usr/lib/jvm/default-java/jre/lib/amd64/server:
        libjvm.so -> libjvm.so

5. 修改postgresql.conf并重启pgsql

#------------------------------------------------------------------------------
# CUSTOMIZED OPTIONS
#------------------------------------------------------------------------------

custom_variable_classes = 'pljava'              # list of custom variable class names
pljava.classpath = '/opt/Postgresql/pljava/pljava.jar'

6. 进到源码的src/sql下面

psql [your_db] <install.sql

应该可以看到相关函数安装成功。另外一种办法是直接用它提供的deploy.jar跑java,我没用。

测试:

在psql中跑如下命令:

CREATE FUNCTION getsysprop(VARCHAR)
  RETURNS VARCHAR
  AS 'java.lang.System.getProperty'
  LANGUAGE java;

SELECT getsysprop('user.home');

应该可以看到通过java获取用户路径。

原文地址:https://www.jb51.cc/postgresql/196545.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐