標籤:style http color java os io strong 檔案
Unable to find a java Virtual Machine--安裝64位版Oracle11gR2後無法啟動SQLDeveloper的解決方案
安裝64位版Oracle11gR2後發現啟動SQL Developer時彈出配置java.exe的路徑,找到Oracle內建java.exe後產生的路徑“C:\app\使用者名稱\product\11.2.0\dbhome_1\jdk”卻彈出錯誤資訊:
--------------------------
Unable to find a java Virtual Machine
to point to a location of a java virtual machine,please refer to the oracle9i Jdeveloper Install guide(jdev\install.html)
--------------------------
由於沒有重新設定的機會,只好到安裝目錄“C:\app\使用者名稱\product\11.2.0\dbhome_1\sqldeveloper0\sqldeveloper\bin”中找到設定檔sqldeveloper.conf,修改其中“SetJavaHome”項為“SetJavaHome C:\Program Files\Java\jdk1.6.0_21”,這是另一個單獨安裝的JDK,結果還是一樣。
於是,又配置成MyEclipse8.5所帶的JDK路徑“SetJavaHome C:\Users\使用者名稱\AppData\Local\Genuitec\Common\binary\com.sun.java.jdk.win32.x86_1.6.0.013”,一切正常,正納悶時,到網路上搜了一下,找到“http://forums.oracle.com/forums/thread.jspa?messageID=4449178”後終於受到了啟發,弄明白是怎麼回事。
原來Oracle在製造64位版的時候沒注意Oracle11gR2所帶的SQL Developer是1.5.5.59.69版,不支援64位版的JDK,恰好64位Oracle帶的JDK和“C:\Program Files”中的JDK都是64位的。如果你單獨安裝的JDK中“C:\Program Files (x86)”中則說明是32位版的,是可以用的。為什麼MyEclipse所帶的JDK可用呢,因為MyEcipse8.5沒有64位版(包括最新的8.6也一樣),所以其中帶的JDK當然是32位版的了。明白了嗎?
再來看看解決方案:
既然你已經決定了要用64位版的Oracle11gR2:
(1)單獨安裝一個32位版的JDK就可以直接配置了;
(2)升級SQL Developer到2.1,把原來“C:\app\使用者名稱\product\11.2.0\dbhome_1”下的的刪除,下載(http://download.oracle.com/otn/java/sqldeveloper/sqldeveloper64-2.1.1.64.45-no-jre.zip)回來直接解壓得到一個sqldeveloper檔案夾放到同一位置即可。這時即可以配置“C:\Program Files”下的JDK,而Oracle內建的JDK,還是不能用的,因為這個2.1版的SQL Developer需要的JDK是1.6.0_04以上,而Oracle11gR2內建的JDK版本只有1.5.0_17。
還沒完喲,還有個小小的問題沒有解決,“開始”菜單中的那個“SQL Developer”是指向“C:\app\使用者名稱\product\11.2.0\dbhome_1\sqldeveloper\sqldeveloper\bin\sqldeveloper.bat”的,這個無法啟動,也許你的機器可以啟動,網路上有人說過這個問題,開啟這個檔案一看,內容是:
java -Xmx640M -Xms128M -Xverify:none -Doracle.ide.util.AddinPolicyUtils.OVERRIDE_FLAG=true -Dsun.java2d.ddoffscreen=false -Dwindows.shell.font.languages= -XX:MaxPermSize=128M -Dide.AssertTracingDisabled=true -Doracle.ide.util.AddinPolicyUtils.OVERRIDE_FLAG=true -Djava.util.logging.config.file=logging.conf -Dsqldev.debug=false -Dide.conf="./sqldeveloper.conf" -Dide.startingcwd="." -classpath ../../ide/lib/ide-boot.jar oracle.ide.boot.Launcher
解決辦法是:把前面的“-Xmx640M”修改為“-Xmx512M”即可。但運行這個命令,單擊那個允許運行程式的“是”後,沒有任何反應,但直接在資源管理員中運行這個BAT檔案會彈出一上類似DOS的視窗有很多資訊顯示後又彈出一個視窗,這個就是了。這樣運行感覺不太好,所以繼續改造:
在“開始”菜單中的“SQL Developer”上右擊選屬性,把目標中的“C:\app\使用者名稱\product\11.2.0\dbhome_1\sqldeveloper\sqldeveloper\bin\sqldeveloper.bat”修改為“C:\app\使用者名稱\product\11.2.0\dbhome_1\sqldeveloper\sqldeveloper\bin\sqldeveloperW.exe”即可。
至於預設運行“sqldeveloper.bat”,應該有其道理,知道原理者可以補充一下。
現在才明白2G記憶體運行64位版Win7後在什麼情況下記憶體吃緊了,唉,要麼再去加一條2G的記憶體,要麼用用Oracle Database 10g Express Edition (Universal)就可以了,做開發是完全可以的,專門做伺服器不行,有些限制。