記一次在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。php

第一個問題

運行以下命令開始安裝weblogic:html

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報錯java

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/linux

其中最主要的內容就是:
SOLARIS中的JDK比較特殊,64bit的JDK是在32bit的JDK上擴展出來的,因此要先安裝32bit的JDK,而後在此基礎上安裝64bit的JDK。這樣就能夠解釋爲何 jdk-6u45-solaris-sparc.sh(32bit)有73m多,而jdk-6u45-solaris-sparcv9.sh卻只有12m多一點了,web

瞭解到這個信息以後,立刻開幹,先安裝jdk-6u45-solaris-sparc.sh,而後在其基礎上安裝jdk-6u45-solaris-sparcv9.sh,獲得完整的jdk1.6.0_45目錄,到jdk1.6.0_45/bin中運行java -version也能夠正常返回了。服務器

而後weblogic安裝也能夠開開心心的跑起來了,並且也正常跑完了。oracle

再次遭遇不幸

接着繼續進行下面的操做,到安裝web程序的時候,竟然提示我安裝的weblogic是32bit的。what!我明明用的是64bit的JDK啊。
這個時候已經有些不爽了,不過先平靜一下。
到MOS上搜索一番,找到以下note:app

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參數,例如ui

./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
相關文章
相關標籤/搜索