前言:
公司一直使用的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文件找了找没有找到,网上还有说去其他目录找到,但是也没有找到,所以就先使用这一种方式,等后面找到了再补充。