PL / Java - 用户功能执行错误

时间:2013-01-15 04:00:30

标签: postgresql pljava

我在Ubuntu上安装了pl / java:

sudo apt-get install postgresql-9.1-pljava-gcj

但是我遇到了一个障碍,我认为是jar和pl / java之间的gcj / jdk 1.7不兼容。以下是http://www.javacodegeeks.com/2012/10/introduction-to-postgresql-pljava.html指南中使用的步骤:

select sqlj.install_jar('file:///home/me/temp/testJar.jar', 'sandbox', true);

select sqlj.set_classpath('public', 'sandbox');

CREATE FUNCTION public.hello(varchar) RETURNS varchar
AS 'sandbox.PLJava.hello'
LANGUAGE java;

我们很高兴直到执行:

SELECT hello('world');

会产生此错误:

错误:java.lang.ClassFormatError:sandbox.PLJava(无法识别的类文件版本) SQL状态:XX000

罐子是用标准的eclipse / export to jar(jdk 1.7.0)制作的。

以前有人在这条路上旅行吗?提前谢谢。

1 个答案:

答案 0 :(得分:0)

正如您所说,这个问题可能是由您通过pl / java运行的JVM与您的Java代码之间的不兼容造成的。因此,如果您从repos运行所有内容,那么这是一个打包问题,您可以跟进发行版或从源代码编译。

如果你可以从源代码编译,那么这可能是目前最好的选择。