前言:
公司一直使用的weblogic當中間件,最近呢是讓升級一下版本,有幾個服務器上的版本還比較低,都是10開頭的,考慮升級到12,所以要先匯總下各個服務器上weblogic的版本,具體到小版本號,原來一直是直接控制台看就好了,這次想直接從服務器上的weblogic文件中看看版本號信息。
Weblogic10:
第一種:根據registry.xml查看
# 先進入到weblogic目錄下
[weblogic@app01 soft]$cd weblogic
# 看一下目錄下的文件
[weblogic@app01 soft]$ls
domain-registry.xml logs modules ocm.rsp patch_wls1036 registry.dat registry.xml user_projects utils wlserver_10.3
# 查看該目錄下的registry.xml
[weblogic@app01 soft]$cat registry.xml
第二種:通過調用weblogic.jar查看
# 進入到這個目錄 其中wlserver_10.3目錄 可能weblogic版本號不同后面的數字也不同
[weblogic@app01 soft]$cd weblogic/wlserver_10.3/server/lib
# 通過jar包查看
[weblogic@app01 soft]$java -cp weblogic.jar weblogic.version
# 同樣的也可以直接的看出版本號
第三種:通過log.txt安裝日志文件查看
# 進入到這個目錄
[weblogic@app01 soft]$cd weblogic/logs
# 查看log.txt文件 這個文件是weblogic安裝的信息也可以看到Weblogic Server的版本號
[weblogic@app01 soft]$cat log.txt
Weblogic12:
Weblogic12跟Weblogic10的目錄有些不同,因此也不能全部照搬Weblogic10的查看方式。
第一種:通過調用weblogic.jar查看
# 進入到這個目錄 weblogic12目錄中 這個wlserver后面就沒有數字了
[weblogic@app01 soft]$cd weblogic12/wlserver/server/lib
# 通過jar包查看 結果這里報了個錯
[weblogic@app01 soft]$java -cp weblogic.jar weblogic.version
Exception in thread "main" java.lang.UnsupportedClassVersionError: weblogic/version : 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:305)
at java.net.URLClassLoader.access$000(URLClassLoader.java:57)
at java.net.URLClassLoader$1.run(URLClassLoader.java:219)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:212)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:300)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: weblogic.version. Program will exit.
# 很明顯是jdk版本的問題,weblogic12的話是要求jdk1.8的。低版本JDK運行高版本JDK編譯的class類。比如說,報錯是51.0,說明項目的JDK版本是JDK 7,使用了低於JDK 7的版本去運行該項目。
#Version和JDK版本的對應關系:
# 52.0 -> 8.0
# 51.0 -> 7.0
# 50.0 -> 1.6
# 49.0 -> 1.5
# 查看一下jdk版本
[weblogic@app01 soft]$java -version
# 確實是1.6的所以調用weblogic12的jar包會有問題
java version "1.6.0-211"
Java(TM) SE Runtime Environment (build 1.6.0_211-b11)
Java HotSpot(TM) 64-Bit Server VM (build 20.211-b11, mixed mode)
# 換了個jdk1.8的用戶 或者 直接去jdk1.8的安裝目錄下 后面就要帶上weblogic.jar的絕對路徑了
[weblogic@app01 soft]$ ./java -cp /soft/weblogic12/wlserver/server/lib/weblogic.jar weblogic.version
# 成功
結尾:
針對Weblogic10查看版本的方式有很多,但是對於Weblogic12好像其他的方式並不適用,比如log文件和registry.xml文件找了找沒有找到,網上還有說去其他目錄找到,但是也沒有找到,所以就先使用這一種方式,等后面找到了再補充。