前言:

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