2013-01-15 66 views
1

我在Ubuntu上安裝PL /用java:PL/Java的 - 用戶功能執行錯誤

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

,但遇到了阻礙,我認爲是罐子和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:沙盒。 PLJava(無法識別的類文件版本) SQL狀態:XX000

該jar是用標準的eclipse/export to jar(jdk 1.7.0)。

任何人都在此之前旅行?提前致謝。

+0

你的java代碼在PostgreSQL之外工作嗎? –

回答

0

如您所說,由於通過pl/java和Java代碼運行的JVM之間存在不兼容問題,可能會導致此問題。因此,如果您正在運行repos中的所有內容,並且可以跟蹤您的發行版或從源代碼編譯,那麼這就是一個打包問題。

如果您可以從源代碼編譯,那可能是目前最好的選擇。