【问题标题】:How to check JDK version in Oracle?如何在 Oracle 中查看 JDK 版本?
【发布时间】:2015-03-25 16:48:13
【问题描述】:

我们的 Oracle DB 中有一个 Java 类,最近该 Java 类中的一行代码抛出错误:

static BASE64Encoder B64 = new BASE64Encoder();

我们看到了错误

java.lang.ExceptionInInitializerError

在这行代码上。

我不确定数据库端发生了什么变化,因为我们没有 SYS 权限或访问主机。

我希望检查运行我们的 Oracle DB 的 JDK 版本 --

Oracle 数据库 11g 企业版版本 11.2.0.3.0 - 64 位生产。

谢谢。

【问题讨论】:

标签: java oracle oracle11g


【解决方案1】:

解决方案 1) 在数据库主机上

cd $ORACLE_HOME/jdk/bin
java -version

解决方案 2) 创建一个 PL/SQL 函数以返回 Java 系统属性

create function get_java_property(prop in varchar2)
return varchar2 is
language java name 'java.lang.System.getProperty(java.lang.String) return java.lang.String';

然后运行选择 Java 版本

select get_java_property('java.version') from dual;

解决方案3)查看SteveK的答案

【讨论】:

  • 我无法访问主机,也没有内置的 sql 命令可以执行此操作吗?
  • 如果您有权创建 PL/SQL 函数,请使用我发布的第二个解决方案。否则,如果您无权访问数据库主机,也无权创建 PL/SQL 函数,您可以依赖认证版本列表或询问管理服务器的人。
  • 感谢您的回复,我有权创建函数。
  • $ORACLE_HOME/jdk/bin中的java不一定和嵌入式JVM版本一样。
  • @KarstenSpang 您能否提供一个示例,其中官方 Oracle 数据库设置并非如此。 (可能在过去的五年内,现在就有这样的案例。)
【解决方案2】:

认证版本为:

Oracle 12.2 / 18.1 JVM 为 1.8

Oracle 12c 数据库嵌入JVM supports JDK 1.6 and 1.7

Oracle 11g >= 11.2.0.4 数据库嵌入JVM supports JDK 1.6

Oracle 11g 数据库嵌入JVM supports JRE 1.5

Oracle 10g 数据库嵌入式 JVM 支持 JRE 1.4

Oracle 9i 数据库嵌入式 JVM 支持 JRE 1.3

【讨论】:

  • 您在哪里找到此信息?我在互联网上搜索它,但只发现你的帖子是绝对正确的..但是你从哪里复制的?
  • @kupa 我真的不记得出处了,这里可能有多个。
  • 我试图通过 update_javavm_binaries.pl 将 jdk 更新到 8,但看到有效选项是:6 7,然后试图以某种方式使 jdk 8 在 /u01/app/oracle/product/ 中可用12.1.0/dblb/javavm/jdk 但不能..我在metalink上搜索支持矩阵,在谷歌上但找不到..你的帖子让我清楚了我错在哪里..所以谢谢!跨度>
  • 对于任何偶然发现这一点的人,来源是 342810.1。
【解决方案3】:
SELECT  dbms_java.get_ojvm_property(PROPSTRING=>'java.version') FROM dual

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-04
    • 1970-01-01
    • 2011-03-21
    • 2020-10-25
    • 2011-04-18
    • 2012-01-17
    相关资源
    最近更新 更多