记一次在Solaris 10上安装weblogic的经历

事情的开始

安装的peoplesoft需要使用64位的weblogic 10.3.6,官方下载到的安装介质中包含的jdk安装文件名称为jdk-7u9-solaris-sparcv9.tar.gz,按照以往的经验,tar.gz格式的jdk,只要解包到相应的路径下,设置对应的环境变量之后就可以使用了。于是我将其解压到/u01/HRDEV/Middleware路径下,得到了一个名为jdk1.7.0-09的目录。然后紧接着,开始安装weblogic。

第一个问题

运行如下命令开始安装weblogic:

chmod +x wls1036.jar
java -jar wls1036.jar

却出现了如下错误,说运行安装程序需要1.6版本的jdk,但是当前系统中的jdk版本为1.5。这样安装就无法进行下去了。必须得先在操作系统上安装1.6版本的jdk才行了。于是就到Oracle的网站上http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase6-419409.html找到1.6_45的最新版本。根据前面安装1.7的经验,下载了jdk-6u45-solaris-sparcv9.sh,然后到服务器上直接运行释放出来,得到了jdk1.6.0_45的目录,但是进到jdk1.6.0_45/bin下却没看到java的可执行文件,倒是在jdk1.6.0_45/bin/sparcv9中找到java的可执行文件。
尝试运行java -version报错

Error occurred during initialization of VM
java/lang/NoClassDefFoundError: java/lang/Object

这种报错一般是由于找不到需要的class。而且这次安装的jdk确实是很奇怪,好多应该有的文件都没有。于是带着疑问去问谷姐。找到如下两篇文章:
http://serverfault.com/questions/71268/how-do-you-install-a-jdk6-on-solaris10-sparc-64bits
http://onlineappsdba.com/index.php/2009/11/23/how-to-install-weblogic-server-on-64-bit-os-linux-solaris/

其中最主要的内容就是:
SOLARIS中的JDK比较特殊,64bit的JDK是在32bit的JDK上扩展出来的,所以要先安装32bit的JDK,然后在此基础上安装64bit的JDK。这样就可以解释为什么 jdk-6u45-solaris-sparc.sh(32bit)有73m多,而jdk-6u45-solaris-sparcv9.sh却只有12m多一点了,

了解到这个信息之后,马上开干,先安装jdk-6u45-solaris-sparc.sh,然后在其基础上安装jdk-6u45-solaris-sparcv9.sh,得到完整的jdk1.6.0_45目录,到jdk1.6.0_45/bin中运行java -version也可以正常返回了。

然后weblogic安装也可以开开心心的跑起来了,而且也正常跑完了。

再次遭遇不幸

接着继续进行下面的操作,到安装web程序的时候,居然提示我安装的weblogic是32bit的。what!我明明用的是64bit的JDK啊。
这个时候已经有些不爽了,不过先平静一下。
到MOS上搜索一番,找到如下note:

How to Install 64-bit Java SE on 64-bit Solaris Operating Systems ? (文档 ID 1326945.1)
E-WL: “This version of PeopleSoft PeopleTools requires a 64-bit Oracle WebLogic installation” (文档 ID 1262156.1)
How to Determine if WebLogic Server is Running in 32-bit or 64-bit Mode (文档 ID 813707.1)

看完文章,中心意思是对mixed mode的jdk(solaris平台就是),实际jdk的位数是和java使用的参数有关系的,要使用64bit的话,需要加上-d64参数,例如

./java -d64 -version

而安装weblogic的位数是和安装时选择的jdk位数有一致的。这个时候问题就清楚了,我需要使用-d64参数重新安装一次,就可以得到64bit的weblogic。

总结

这次问题的产生,主要是由于对solaris平台上JDK不熟悉导致。问题解决之后,可以总结出以下两点:

  1. SOLARIS平台的64bit JDK是从32bit扩展而来的,安装的时候就都要装上,这就是所谓的mixed mode。
  2. 对于mixed mode的JDK,要使用64bit,需要在运行的时候加上-d64参数,例如
    ./java -d64 -version
    原文作者:花菜土豆粉
    原文地址: https://segmentfault.com/a/1190000000595201
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞