0

我正在使用 oracle 11g 并尝试使用 loadjava 实用程序加载 java 项目。我有 2 个不同的架构。loadjava 到 schema1 成功执行,但同时到 schema2 它没有加载oracle/sql/ARRAY类,错误无法解决。当我尝试创建 java 存储过程并在此过程中使用该类时,编译失败并出现错误:

bad class file: null class file has wrong version 50.0, should be 49.0

我知道这意味着什么。但我的项目使用 1.5 jdk 编译,Oracle DB 有 java 版本 1.5_10。(请记住,在不同的模式中,项目上传正常并且相同的存储过程可以正常工作)。我的类路径(Maven)中有 ojdbc5.jar。有什么建议么?我花了 2 天时间来解决这个问题,但我仍然在这一点上。

4

1 回答 1

0

那么版本 50.0 意味着它是一个 Java 1.6 类文件。因此,在某个地方,您正在使用一个太新的类文件。如果我是你,我会把你在项目中使用的所有 jar 文件提取到一个临时目录中,然后找出哪个类文件是错误的。

在 unix/linux 上,你可以这样做:

mkdir tmp
cd tmp
for i in `ls whereever_your_jar_files_are/*.jar`
do
  jar xf $i
done
find . -name '*.class' -exec file {} \; | grep 50.0

这将为您提供一些关于哪个库提供更新版本的类文件的线索。

于 2013-10-07T13:42:30.880 回答