【问题标题】:Oracle and Java: oracle/sql/ARRAY cannot be resolvedOracle 和 Java:oracle/sql/ARRAY 无法解析
【发布时间】:2013-10-14 00:55:58
【问题描述】:

我正在使用 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 天的时间来解决这个问题,但我仍然在这一点上。

【问题讨论】:

  • schema2 可能没有所需的权限。看看schema1和schema2的权限差异
  • 这是否已经存在于 schema1 中? loadjava -resolve 会在 schema1 上工作吗?

标签: java sql oracle oracle11g


【解决方案1】:

版本 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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-30
    • 2021-12-28
    • 1970-01-01
    • 2011-05-18
    • 2021-08-07
    • 2019-05-12
    • 2021-04-06
    相关资源
    最近更新 更多