OMSPatcher命令报错Fail with Error Code 1 and Message: Unsupported major.minor version 51.0

OMSPatcher命令报错Fail with Error Code 1 and Message: Unsupported major.minor version 51.0

 

前言

最近安装OEM 13c,准备对OMS打补丁的时候,检查OMSPatcher版本的时候,报错如下:

[oracle@oem13c ~]$ omspatcher version
Exception in thread "main" java.lang.UnsupportedClassVersionError: oracle/opatch/opatchsdk/OPatchException : Unsupported major.minor version 51.0
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClassCond(ClassLoader.java:637)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
        at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: oracle/opatchauto/oms/OPatchAuto.  Program will exit.

OMSPatcher failed with error code 1

反复安装卸载的JDK

随后,我就直接问度娘了。

找到这么一篇文章,报错和我这个比较类似。

里边提到了这么一个对应关系,顿时我就那个高兴啊!

你瞧瞧你瞧瞧,简直都领你到家门口了,只要自己踏进去问题就迎刃而解了啊。

然后我就看了下当前java的版本,

[oracle@oem13c ~]$ java -version
OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00007fb607c00000, 138412032, 2097152, 0) failed; error='Cannot allocate memory' (errno=12)
java version "1.7.0_45"
OpenJDK Runtime Environment (rhel-2.4.3.3.0.1.el6-x86_64 u45-b15)
OpenJDK 64-Bit Server VM (build 24.45-b08, mixed mode)

??????

这版本符合要求的啊!!!

可能是后边的小版本号不符合吧?正好前段时间公司同事托我用Oracle账号下载了JDK8的版本,我就升下级吧。

于是,

[root@oem13c soft]# rpm -ivh jdk-8u251-linux-x64.rpm 
warning: jdk-8u251-linux-x64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
Preparing...                ########################################### [100%]
   1:jdk1.8                 ########################################### [100%]
Unpacking JAR files...
        tools.jar...
        plugin.jar...
        javaws.jar...
        deploy.jar...
        rt.jar...
        jsse.jar...
        charsets.jar...
        localedata.jar...
[root@oem13c soft]# java -version
java version "1.8.0_251"
Java(TM) SE Runtime Environment (build 1.8.0_251-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.251-b08, mixed mode)

然鹅,

还是报错。

又想,文章说是说要7以上,兴许是8又太新了。

于是又跑官网下载了jdk-7u80-linux-x64.rpm,回退8的,安装7的。

还是不行!!!

后来又反复试验,甚至升级OMSPatcher版本,也是一样。

转折又转折

还是又mos上搜索一下吧,之前搜过了没搜出啥。

这次我直接把一整行报错拿出来搜。

天呐!!之前搜基本都是不对边的DOC,终于搜出来了。

别急,先看看能不能解决(Doc ID 2175778.1)。

把环境变量ORACLE_HOME的值改成oms的home路径。

[oracle@oem13c ~]$ export ORACLE_HOME=/u01/app/oem13c/middleware
[oracle@oem13c ~]$ /u01/app/oem13c/middleware/OMSPatcher/omspatcher version
OMSPatcher Version: 13.8.0.0.3
OPlan Version: 12.1.0.2.2
OsysModel build: Mon Dec 21 18:31:52 PST 2015

OMSPatcher succeeded.

终于成功了,果然Oracle自家产品的问题,还是mos靠谱点。

不对!!!那我资料库也是同一台机,ORACLE_HOME环境变量不能改啊!!!

后续

EM 13c: Upgrading OPatch to 13.9.x in the Enterprise Manager 13c Cloud Control Middleware Home Fails with Error: Unsupported major.minor version 51.0 (Doc ID 2221863.1)中指出,

JDK版本是会导致这个错误的,这个在前边已经明确。不过文中指出,其实安装好OMS后,已经自带了jdk了。

export MIDDLEWARE_HOME=<MIDDLEWARE_HOME>
export JAVA_HOME=<MIDDLEWARE_HOME>/oracle_common/jdk
export PATH=$JAVA_HOME/bin:$PATH

注意,PATH变量中,$JAVA_HOME/bin一定要放在$PATH前边,不然java会优先使用/usr/bin/java。

这几个环境变量配置作为OEM 13c的安装规范吧。

原文地址:https://www.cnblogs.com/PiscesCanon/p/13402149.html