13

私は 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バージョンではないことがわかりました。

4

2 に答える 2

1

その間、私はこれらの問題を解決することができました。

初挑戦:

  • 最新の JDK (現時点では 1.7.0u15) に更新します。
  • Github からコードを再度複製します
  • Eclipseインディゴをインストールする
    • Eclipse を再インストールすると、JDK6 の問題が解決されました。これ以上の構成を行わなくても、JDK7 で起動するようになりました。
  • Scala プラグインをインストールする
  • を使用して新しいEclipseプロジェクトを作成しますsbt eclipse
  • 作成したプロジェクトをインポートする

おっと、うまくいきません!私はまだこの例外を受け取ります:

value getPlatformMXBean is not a member of object java.lang.management.ManagementFactory

... Eclipse が実際に JDK7 で実行されるようになったため、これは奇妙です。深く掘り下げずに、Eclipse Juno を試してみました。

2 回目の試行:

  • 上記と同じことをすべて行う
  • Indigo の代わりにEclipse Junoをインストールする
  • ええ、うまくいきます!:)

結論:

理由はわかりませんが、Eclipse Indigoはどういうわけか好きではありませんgetPlatformMXBean。JDK の問題ではなく、Eclipse 自体の問題のようです。

于 2013-02-23T10:21:01.937 に答える