Java 如何在Oracle中检查JDK版本?
我们的Oracle DB中有一个Java类,最近该Java类中的一行代码抛出了一个错误:Java 如何在Oracle中检查JDK版本?,java,oracle,oracle11g,Java,Oracle,Oracle11g,我们的Oracle DB中有一个Java类,最近该Java类中的一行代码抛出了一个错误: static BASE64Encoder B64 = new BASE64Encoder(); 我们看到了错误 java.lang.ExceptionInInitializeError 在这行代码上 我不确定DB端发生了什么变化,因为我们没有SYS权限或主机访问权限 我希望检查运行Oracle DB的JDK版本-- Oracle Database 11g Enterprise Edition 11.2.0
static BASE64Encoder B64 = new BASE64Encoder();
我们看到了错误
java.lang.ExceptionInInitializeError
在这行代码上
我不确定DB端发生了什么变化,因为我们没有SYS权限或主机访问权限
我希望检查运行Oracle DB的JDK版本--
Oracle Database 11g Enterprise Edition 11.2.0.3.0版-64位生产版
谢谢。解决方案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
select get_java_property('java.version') from dual;
解决方案3)检查认证版本的答案是: Oracle 12.2/18.1 JVM是 Oracle12c嵌入式数据库 Oracle11g>=11.2.0.4嵌入式数据库 Oracle11g嵌入式数据库 Oracle10g数据库嵌入式JVM支持JRE 1.4 Oracle9i数据库嵌入式JVM支持JRE 1.3
selectdbms\ujava.get\uojvm\u属性(PROPSTRING=>'java.version')来自dual
您可以查看此链接。从所有注册表中选择*横幅不会给我JDK版本的权限。我没有访问主机的权限,也没有内置的sql命令可以执行此操作吗?如果您有权创建PL/sql函数,请使用我发布的第二个解决方案。否则,如果您没有访问数据库主机的权限,也没有创建PL/SQL函数的授权,您可以依赖认证版本列表,或者询问服务器管理员。感谢您的回复,我有权创建一个函数。$ORACLE_HOME/jdk/bin中的java不一定与嵌入的JVM具有相同的版本。@KarstenSpang能否请您提供一个示例,说明ORACLE官方数据库设置的情况并非如此。(可能是在过去五年内出现了这样的情况。)你在哪里找到了这些信息?我在网上搜索,但只找到了你绝对正确的帖子。。但是你是从哪里复制的?@kupa我真的不记得源代码了,这里的简短可能是多个。我试图通过update_javavm_binaries.pl将jdk更新到8,但看到有效的选项是:6 7,然后试图在/u01/app/oracle/product/12.1.0/dblb/javavm/jdk中以某种方式使jdk 8可用,但无法。。我在metalink和谷歌上搜索支持矩阵,但没有找到。。你的帖子让我明白了我错在哪里。。谢谢你!对于任何偶然发现这一点的人,来源是342810.1。