EclipseのSubclipseプラグイン導入にはまる
Macで使っていたEclipseへSubclipseプラグインを導入しようとしたらハマったのでメモ。
環境は下記。
- MacOS X 10.6.5 (Snow Leopard)
作業手順は下記の通り。
- Help -> Install New Softwareで表示されるダイアログで下記のURLを指定する。
- インストール完了後、Eclipseを再起動したところ、svnクライアントであるJavaHLが使えないというエラーメッセージが表示される。
- MacPortsにsubversion-javahlbindingsが用意されていると分かったのでインストールを試みるがエラーが発生してしまう。
% sudo port install subversion-javahlbindings Password: ---> Computing dependencies for subversion-javahlbindings ---> Fetching subversion-javahlbindings Error: Target org.macports.fetch returned: ******************** subversion-javahlbindings requires the Java for Mac OS X Developer Package from Apple. Please download and install this package: https://connect.apple.com/cgi-bin/WebObjects/MemberSite.woa/wa/getSoftware?bundleID=20719 ******************** Log for subversion-javahlbindings is at: /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_ports_devel_subversion-javahlbindings/main.log Error: Status 1 encountered during processing. To report a bug, see <http://guide.macports.org/#project.tickets>
- メッセージの指示に従い、下記のサイトにアクセスして"Java Developer Package for Mac OS X 10.6 Update 3 (Disk Image)"をダウンロードしてインストール。*1
- subversion-javahlbindingsを再インストールしたところ、今度は正常に完了した。
- この状態でEclipseを起動させると、今度は別のエラーメッセージが出た。
Failed to load JavaHL Library. These are the errors that were encountered: no libsvnjavahl-1 in java.library.path no svnjavahl-1 in java.library.path /opt/local/lib/libsvnjavahl-1.0.0.0.dylib: no suitable image found. Did find: /opt/local/lib/libsvnjavahl-1.0.0.0.dylib: mach-o, but wrong architecture
- 下記の情報によれば、アーキテクチャ(32/64bit)の違いが原因らしい。
Note the error about wrong architecture. This is because the 64-bit JVM cannot load a 32-bit native library.
subclipse: Wiki: JavaHL
- 改めてファイルを確認したところ、JavaHLライブラリの方は64ビットであり、今まで使っていたEclipseは32ビット版だと気がついた。(Macの場合、通常はアプリケーションパッケージ内に32bit版と64bit版のバイナリが含まれているので、ユーザとしてあまり意識することは無いのだが、Eclipseは例外的に別パッケージとなっているのだった)
$ file /opt/local/lib/libsvnjavahl-1.0.0.0.dylib /opt/local/lib/libsvnjavahl-1.0.0.0.dylib: Mach-O 64-bit dynamically linked shared library x86_64
- 特に32bit版にこだわる必要もないので、64bit版Eclipseを導入し直して、Subclipseプラグインも再インストール。
- 今度はEclipseがエラー無く正常に起動し、subversionも使えることを確認した。
- Eclipseの設定画面ではJavaHLのバージョンが正しく表示されていた。
参考:
- 試験管のなかのコード :: MacPorts の "db46 requires the Java..." エラー
- http://blog.ikemasa.com/2010/10/mac-javahl-error/
関連