1. 程式人生 > 實用技巧 >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

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環境變數不能改啊!!!