私は Eclipse (Indigo SR2) を使用して Scala プロジェクトに取り組んでいます。今日、JDK 7 のいくつかの機能が必要なため、マシンを Mountain Lion に更新しました。JDK 7 のインストールは正常に機能しました。
$ java -version
java version "1.7.0_13"
Java(TM) SE Runtime Environment (build 1.7.0_13-b20)
Java HotSpot(TM) 64-Bit Server VM (build 23.7-b01, mixed mode)
Eclipse では、次の設定を変更しました。
- Java => Compiler => インストール済みの JRE: JDK1.7.0 をパスとともに追加
/Library/Java/JavaVirtualMachines/jdk1.7.0_13.jdk/Contents/Home
- Java => コンパイラ => インストール済みの JRE => 実行環境: JavaSE-1.7 を
JDK1.7.0
- Java => コンパイラ: 準拠レベル: 1.7
- Scala => コンパイラ: ターゲット = jvm-1.7
次に、Eclipse を再起動し、スクリプトを実行しようとしました。ただし、常にエラーが発生します。
value getPlatformMXBean is not a member of object java.lang.management.ManagementFactory
上記のメソッドは Java 1.7 以降でのみ利用可能であり、コマンドを押しながらクリックすると class の関数が表示されますが、Eclipse はそれを見つけられないようですManagementFactory
。Eclipse について => 設定を見ると、まだ JDK 6 ( java.runtime.version=1.6.0_37-b06-434-11M3909
) を使用していますが、JDK 7 が必要です。
そこで、次のことを試しました(StackOverflowや他のサイトでも説明されています):
- eclipse.iniファイルに追加します(パス、 Eclipse Webサイト
-vm /Library/Java/JavaVirtualMachines/jdk1.7.0_13.jdk/Contents/Home/bin/java
に従ってファイル内の適切な場所を再確認し、間に改行を追加しました) - 同じものを Info.plist に追加します
$ /Applications/eclipse/Eclipse.app/Contents/MacOS/eclipse -vm /Library/Java/JavaVirtualMachines/jdk1.7.0_13.jdk/Contents/Home/
- 1.6 から 1.7 へのシンボリック リンクを作成します。
しかし運が悪く、Eclipse は JDK-6 のみで開始され続けます。奇妙なのは、JRE を明示的Run=>Run Configurations
に JDK7 に変更して、そのように実行できることです。しかし、実行可能なファイルごとにそれを変更したくありません。
さらに提案はありますか?
EECOLOR からのヒントのおかげで、JDK7 が問題なく動作する Eclipse Juno で Scala プラグインを使用することができました。ただし、依存関係の問題と思われる問題に遭遇しました。私が得る例外はここで見ることができます: https://gist.github.com/anonymous/ac0f3a3655419e5149fa
不思議なことに、コマンドラインから単純なjava -cp JARFILE com.AND-SO-ON.file
. ソースのビルドと依存関係の取得には、SBT を使用します。
私のEclipse.iniは次のようになります(Xmxを除くデフォルト):
-startup
../../../plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar
--launcher.library
../../../plugins/org.eclipse.equinox.launcher.cocoa.macosx.x86_64_1.1.200.v20120522-1813
-product
org.eclipse.epp.package.java.product
--launcher.defaultAction
openFile
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Dhelp.lucene.tokenizer=standard
-XstartOnFirstThread
-Dorg.eclipse.swt.internal.carbon.smallFonts
-XX:MaxPermSize=256m
-Xms40m
-Xmx1060m
-Xdock:icon=../Resources/Eclipse.icns
-XstartOnFirstThread
-Dorg.eclipse.swt.internal.carbon.smallFonts
同じプロジェクト (つまり、同じコードだけでなく、実際には同じプロジェクト) は、Eclipse Indigo で依存関係の問題なしに実行されます。編集:この例外はJDK7が原因であり、使用されているEclipseバージョンではないことがわかりました。