2012-04-27 127 views
46

我試圖讓new 1.7 JDK與Eclipse一起工作(這是Oracle的正式版本)。如何使用Oracle的新的1.7 JDK for Mac運行Eclipse?

我並不是說只是將Eclipse指向它,以便您可以在項目中使用它,這工作正常,但實際上使Eclipse運行使用1.7 JVM。

我已經將新的JVM移動到Java首選項的列表頂部,但Eclipse仍然以1.6開頭。如果我在Java首選項中禁用1.6,則在雙擊Eclipse並顯示「無法創建Java虛擬機」後,會立即收到一個對話框。

編輯:我剛加入的-vmargs之前,以下我的eclipse.ini:

-vm 
/Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home/bin/java 

然而,在Eclipse的安裝細節對話框我仍然看到:

java.runtime.version=1.6.0_31-b04-415-11M3646 

編輯2:這裏是我的eclipse.ini文件的內容:https://gist.github.com/2512578

+0

這是一個通向實際的java可執行文件或目錄的路徑嗎?它必須鏈接到實際的可執行文件才能工作。另外,你使用的是什麼版本的Eclipse? – Haz 2012-04-27 16:18:00

+0

這是實際的可執行文件。我正在使用Indigo Service Release 2 Build ID:20120216-1857 – sanity 2012-04-27 18:48:30

+0

您可以發佈eclipse.ini文件的全部內容嗎? – Haz 2012-04-27 20:12:01

回答

32

我只是說我的評論到https://bugs.eclipse.org/bugs/show_bug.cgi?id=339788關於無法使用的Eclipse新的Oracle JDK在OS X上使用-vm選項裏面的eclipse.ini不起作用。我發現解決這個問題的唯一方法是使用下面的shell腳本:

#!/bin/sh 
# 
export JAVA_HOME=/Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home 
LAUNCHER_JAR=/Applications/eclipse/plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar 

java \ 
-showversion \ 
-XX:MaxPermSize=256m \ 
-Xms1024m \ 
-Xmx1024m \ 
-Xdock:icon=/Applications/eclipse/Eclipse.app/Contents/Resources/Eclipse.icns \ 
-XstartOnFirstThread \ 
-Dorg.eclipse.swt.internal.carbon.smallFonts \ 
-Dosgi.requiredJavaVersion=1.5 \ 
-jar $LAUNCHER_JAR 

使用步驟上http://mathiasbynens.be/notes/shell-script-mac-apps,我打開上面的腳本到,我可以繼續我的碼頭的應用程序。

+0

此外,這是有趣:https://bugs.eclipse.org/bugs/show_bug.cgi?id=374792#c3 – 2012-08-28 19:48:54

+1

問題是在Eclipse 3.7的啓動器二進制文件中,對於Eclipse 3.7.2,這是文件'plugins/org.eclipse.equinox.launcher.cocoa.macosx.x86_64_1.1.101.v20120109-1504/eclipse_1408.so'對應的'eclipse *。所以從Eclipse 4.x中可以處理新的Java 7版本的Mac OS X.現在這是一個可怕的黑客,但如果你真的需要使用3.7.x目標平臺,你可以簡單地複製新的'eclipse *。所以'從Eclipse 4.3設置到你的產品中,你確實需要保留原來的文件名,所以對於Eclipse 3.7來說,仍然必須使用上面的插件在名稱和'eclipse_1408.so'。 – Kay 2013-06-18 14:41:01

+1

沒有爲我工作,就像其他3提到的解決方案。真的,這難以讓Eclipse在OSX Mavericks上工作嗎?甚至在發佈後將近半年?我已經在這裏開始一個新的線程:http://stackoverflow.com/questions/22725267/osx-10-9-mavericks-and-eclipse-kepler-4-3-2-or-m6-eclipse-luna-4 -4 – 2014-03-29 00:01:11

1

假設您正在使用支持Java 7的Eclipse版本(我相信任何3.7和更高版本),您應該能夠在eclipse.ini文件中指定Eclipse使用的JVM。如果你打開它,你應該看到一個「-vm」屬性,後面跟着你當前使用的JVM的目錄。您應該能夠將此目錄更改爲1.7安裝。

注意:我沒有在Mac上使用Eclipse,所以配置文件的名稱可能會有所不同。

+3

eclipse.ini的格式非常特別,在Mac OS X中查找它的格式是有點棘手。見http://wiki.eclipse.org/Eclipse.ini – 2012-04-27 15:06:10

+0

感謝您的優秀鏈接。我不知道eclipse.ini中選項的特定順序。 – Haz 2012-04-27 15:14:33

+0

不工作:-(見編輯質疑 – sanity 2012-04-27 15:41:19

1

截至2012年4月28日,它是Eclipse 3.7 SR2啓動器應用程序中的一個已知未解決的錯誤。

https://bugs.eclipse.org/bugs/show_bug.cgi?id=339788

+0

截至2012-07-03,它被標記爲的副本[錯誤374791(https://bugs.eclipse.org/bugs/show_bug.cgi?id=374791) ,其中被標記爲解決固定的,但對我來說還是基於Eclipse 4.2不起作用 – 2012-07-03 19:03:13

36

還有另一種方法。請.ini文件-vmargs前添加以下兩行:

-vm 
{YOUR_JAVA_7_HOME}/jre/lib/server/libjvm.dylib 

(記住這些需要是單獨的線),也可以添加在「Info.plist中」文件中的相應條目(添加或修改下數組項「Eclipse」鍵 - 每個字符串子元素對應一個命令行參數)。

... 
<key>Eclipse</key> 
<array> 
<string>-vm</string> 
<string>/{MY_VM_HOME}/jre/lib/server/libjvm.dylib</string> 
... 
</array> 

另外,只需使用-vm {YOUR_JAVA_7_HOME}/lib/server/libjvm.dylib命令行參數從終端運行eclipse時。

+2

這爲我工作(日食3.7.1),我不知道爲什麼它沒有標記爲好答案。 – Alex 2013-03-22 15:48:23

+0

我確認這個工作(在eclipse.ini和plist.info中)與我的Eclipse Indigo安裝!謝謝。 – BoD 2013-10-13 17:11:58

+0

在小牛隊嘗試一下,失敗了。 (1)使用/ usr/libexec/java_home來確定{JAVA_7_HOME}。它給了/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home。有一個lib子目錄但沒有lib/server子目錄。 (2)我發現「在'plist.info'文件中添加一個相應的條目」有點稀疏。對我來說,最接近的是Info Contents(目錄)中的Info.plist(大寫),但不確定在那裏添加什麼。 – bwbecker 2013-11-07 17:10:32

6

在上面的Mac中似乎不起作用。對於Eclipse Eclipse KEPLER而言,它的工作原理是在日蝕結束時加入

-vm /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/ 

。INI(不含該換行符)

這最終改變了我的Eclipse安裝細節>配置從

-vm /System/Library/Frameworks/JavaVM.framework

-vm /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/bin/../jre/lib/server/libjvm.dylib

這樣做不是使用我的Eclipse INDIGO安裝。

9

顯然有一個解決方案,開普勒應該在下一個服務版本中出現。

同時,還有是在這個bug提到一個解決方法,讓您無需不斷從蘋果安裝JRE 1.6 Eclipse中運行:https://bugs.eclipse.org/bugs/show_bug.cgi?id=411361#c20

這將允許您從Finder或聚光燈下,但不啓動Eclipse碼頭。

我剛剛在OS X Mavericks上測試了這一點,在更新過程中失去了jre 6,並要求在您嘗試啓動Eclipse時安裝它。當然,我安裝了最新的Oracle JDK 1.7。

衰落做到這一點,然後去解決這個問題,編輯/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Info.plist

<key>JVMCapabilities</key> 
      <array> 
        <string>CommandLine</string> 
        <string>JNI</string> 
        <string>BundledApp</string> 
        <string>WebStart</string> 
        <string>Applets</string> 
      </array> 

JVM的能力有了此修復程序,你不需要在eclipse.ini中指定vm。

+0

這給了我一個「未能創建Java虛擬機」。附:我有JDK 1.7.0_45安裝和工作 – ksiomelo 2013-12-25 14:39:47

+0

這對我來說很好,似乎比改變Eclipse發行版文件有點整潔。但它確實需要你重新啓動你的Mac。 – 2014-01-28 21:18:02

+0

啊,這太好了。在Googeling並嘗試至少20種不同的事情之後,這是唯一有效的解決方案。非常感謝。如果有人在那裏掙扎,那就跑小牛隊吧。請注意(如上所述)重新啓動是必需的。 – OptimusCrime 2014-02-09 00:05:14

2

只要編輯

Eclipse.app/Contents/Info.plist 

你必須使用特定的Java版本(而不是平臺的默認值)以下選項取消註釋之一:

<string>-vm</string> 
<string>/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java</string> 

幫我從1.7.0回滾到1.6.0。

0

我在下載並安裝Titanium後出現類似問題。我的日食工作,但鈦沒等我結束了尋找在配置文件,看看有什麼不一樣

Eclipse中有

eclipse.p2.profile=epp.package.standard 

鈦有

eclipse.p2.profile=profile 

改變上述後與Eclipse配置相匹配我能夠啓動Titanium

3

安裝Oracle JRE和JDK後,在Eclipse.app(右鍵單擊,顯示內容)中打開Info.plist並粘貼af ter「Eclipse」 「-vm/System/Library/Frameworks/JavaVM。框架/ JavaVM的」

礦看起來像這樣:

<key>Eclipse</key> 
    <array> 
     <string>-vm</string><string>/System/Library/Frameworks/JavaVM.framework/JavaVM</string> 
     <string>-keyring</string><string>~/.eclipse_keyring</string> 
     <string>-showlocation</string> 
    </array> 

如果你這樣做,你不會有升級JRE後更新文件

+0

這是爲我工作的唯一解決方案,但我嘗試了很多其他步驟。如果您遇到問題,我建議您確保安裝最新版本的Eclipse和JDK,然後嘗試此答案。在安裝JDK 7之前,我已經通過標準OS提示符安裝了Java 6,不知道這是否有幫助或傷害。 – 2013-12-21 18:43:35

2

檢查您的JAVA_HOME corrento在/ usr /的libexec/JAVA_HOME;

不要改變你的eclipse.ini並編輯Info.plist文件並更改/加入這一行<字符串> -vm < /字符串> <字符串> /庫/的Java/JavaVirtualMachines /'jdk-版本的「/續ents/Home/bin/java </string> 並保存。打開Eclipse並完成!

對我來說,它運行良好,並使用javafx e(fx)clipse! PS:在Mac OS X系統上,您可以通過在Finder中的Eclipse可執行文件上單擊鼠標右鍵(或Ctrl +單擊)來查找Info.plist,選擇Show Package Contents,然後在Info Contents中找到Info.plist。夾。

+1

感謝老闆終於這麼做了...... – 2014-02-25 13:33:46

-1

簡單的解決方案。在另一個線程在這裏。從apple.com下載Java而不是Oracle。它完全解決了這個問題,現在打開雙擊,不需要終端或編程。

+0

這個沒有回答這個問題 – 2014-04-18 23:29:28

+0

提供一個你知道有效的鏈接嗎? – OptimusCrime 2014-04-24 00:46:05

0

這爲我解決了幾個點擊。 轉到Eclipse - > Preference - > Java - > Installed JRE - > Add button - > Standard VM並將JRE主路徑轉到/Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home並添加自定義名稱。在給出JRE路徑之後,將自動添加所需的Jar文件並單擊完成。請確保jdk已經安裝。

+1

此修復程序僅導致應用程序在Eclipse中運行,以使用指定的JVM。它對用於運行Eclipse本身的JVM沒有影響。 – 2014-05-26 19:34:04

0

對於我來說,曾在https://bugs.eclipse.org/bugs/show_bug.cgi?id=411361#c25建議修復:

#!/bin/bash 

# Workaround for https://bugs.eclipse.org/411361 
# "[Mac] Kepler doesn't launch without JRE 6, even if JDK 7 is installed" 
# 
# Put this launch.command into the same folder as Eclipse.app. 
# 
# If necessary, adapt JAVA_EXECUTABLE to the full path to your Java executable: 

JAVA_EXECUTABLE=java 

cd "$(dirname "$0")" 

$JAVA_EXECUTABLE \ 
-Djava.library.path="$(echo plugins/org.eclipse.equinox.launcher.cocoa.macosx.x86_64_*/eclipse_*.so)" \ 
-Xms512m \ 
-Xmx2048m \ 
-Xdock:icon=Eclipse.app/Contents/Resources/Eclipse.icns \ 
-XstartOnFirstThread \ 
-Dorg.eclipse.swt.internal.carbon.smallFonts \ 
-XX:MaxPermSize=256m \ 
-jar "$(echo plugins/org.eclipse.equinox.launcher_*.jar)" \ 
-os macosx \ 
-ws cocoa \ 
-arch x86_64 \ 
-showsplash \ 
-name Eclipse \ 
--launcher.appendVmargs \ 
-debug \ 
-showlocation \ 
-consolelog 
1

我剛剛有這個問題。我通過降級和下載JDK 7來修復它。