Unable to find a java Virtual Machine-64位Oracle11g

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」卻彈出錯誤信息:html

--------------------------
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)
--------------------------java

  因爲沒有從新配置的機會,只好到安裝目錄「C:\app\用戶名\product\11.2.0\dbhome_1\sqldeveloper0\sqldeveloper\bin」中找到配置文件sqldeveloper.conf,修改其中「SetJavaHome」項爲「SetJavaHome C:\Program Files\Java\jdk1.6.0_21」,這是另外一個單獨安裝的JDK,結果仍是同樣。sql

  因而,又配置成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」後終於受到了啓發,弄明白是怎麼回事。shell

  原來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位版的了。明白了嗎?windows

  再來看看解決方案:服務器

  既然你已經決定了要用64位版的Oracle11gR2:網絡

(1)單獨安裝一個32位版的JDK就能夠直接配置了;oracle

(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。app

  還沒完喲,還有個小小的問題沒有解決,「開始」菜單中的那個「SQL Developer」是指向「C:\app\用戶名\product\11.2.0\dbhome_1\sqldeveloper\sqldeveloper\bin\sqldeveloper.bat」的,這個沒法啓動,也許你的機器能夠啓動,網絡上有人說過這個問題,打開這個文件一看,內容是:jsp

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)就能夠了,作開發是徹底能夠的,專門作服務器不行,有些限制。

相關文章
相關標籤/搜索