[解決済み] OSX Yosemiteにアップグレードした後、RStudio/RでrJavaのロードエラーが発生する。
質問
最近、OSX Mountain Lion から Yosemite にアップグレードし、R 3.1.3 から 3.2 にアップグレードしました。アップグレードの直後、R または RStudio を開くと、Java 6 をインストールする必要があるというポップアップ メッセージが表示されました。さらに、ロードする
rJava
や rJava に依存するパッケージ (例.
xlsx
を開くと RStudio がクラッシュしました (R もクラッシュしました)。
R.app
を直接開いて試したときもクラッシュしました)。
Stack Overflow などで見つけたいくつかの修正 (詳細は後述) を試した後、私は、ロードする
rJava
に依存するパッケージのロードが
rJava
は、もはやRをクラッシュさせることはなく、以下のようなエラーに帰結します。
library(rJava)
Error : .onLoad failed in loadNamespace() for 'rJava', details:
call: dyn.load(file, DLLpath = DLLpath, ...)
error: unable to load shared object '/Library/Frameworks/R.framework/Versions/3.2/Resources/library/rJava/libs/rJava.so':
dlopen(/Library/Frameworks/R.framework/Versions/3.2/Resources/library/rJava/libs/rJava.so, 6): Library not loaded: @rpath/libjvm.dylib
Referenced from: /Library/Frameworks/R.framework/Versions/3.2/Resources/library/rJava/libs/rJava.so
Reason: image not found
Error: package or namespace load failed for ‘rJava’
しかし、コマンドラインからRを起動し、ロードした
rJava
に依存するパッケージをロードすると
rJava
であれば、動作するようです(少なくとも、エラーメッセージは出ません)。
私は多くの異なる修正を試み、そのうちのいくつかは数回試し、どの順番で何をしたかを正確に覚えていませんが (これがこのような泥沼になるとは思わず、本当に記録していませんでした)、ここにその要点があります。
-
以下を私の
.bash_profile
(あたり このSOの答え ):export JAVA_HOME="/usr/libexec/java_home -v 1.8"
export LD_LIBRARY_PATH=$JAVA_HOME/jre/lib/server -
コマンドラインからjavaを以下のように再設定。
sudo R CMD javareconf -n
-
チェック済み
options("java.home")
に設定されていることを発見しました。NULL
. に設定してみたところ、以下のようになりました(あたり このSOの質問 ):options("java.home"="/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/jre")
-
最新のJava Development Kitをインストールし、再インストールしています。
rJava
をソースから再インストールしました (どこでそれを見つけたか覚えていません)。
これらすべてを試している間のある時点で、私はロードされた
rJava
を読み込むことができましたが、R がクラッシュすることなく、上記のようなエラーメッセージが表示されました。さらに、RStudio を終了すると、正常に終了したように見えますが、終了しようとしたときにプログラムがクラッシュしたことを示す "RStudio quit unexpectedly" というメッセージがポップアップ表示されます。
最終的に、私はインストールすることにしました。
OS X 用の Java 2014-001
(Java 6) をインストールすることにしました。これで、R または RStudio を開いたときに、"このソフトウェアには Java 6 が必要です" というポップアップ メッセージが表示されなくなりました。しかし、私はまだ
.onLoad failed in loadNamespace() for 'rJava'
のエラー メッセージが表示されます。
すでに見ていたいくつかの投稿を見直す中で、私は次のことに気づきました。 別のSO回答 それは、RStudio に java への正しいパスを与える次のコマンドライン コードで RStudio を開くことを推奨しているものでした。
LD_LIBRARY_PATH=$(/usr/libexec/java_home)/jre/lib/server: open -a RStudio
これでRStudioのウィンドウが開き、ロードもできました。
rJava
とそれに依存するパッケージもエラーにならずに読み込むことができました。
最後に、私はコマンドラインからRを実行してみました(これは以前にはやっていませんでした)。その結果、コマンドラインで
rJava
に依存するパッケージは
rJava
が動作し、エラーを投げません。
というわけで、これで
rJava
を動作させることができるようになりました。しかし、根本的な問題が何であれ、それを解決する方法を見つけ、コマンドラインでのごまかしを必要とせずに、通常の Mac での方法で RStudio を開くことができるようにしたいと思います。また、古いバージョンの Java がインストールされていると、将来的に問題が発生する可能性があることを懸念しています。
この問題を診断し解決する方法について、どなたかアイデアをお持ちでしょうか。
どのように解決するのですか?
私も同じ問題があり、あなたと同じステップを踏みました。Finder/Spotlight から RStudio を起動できるようにするための最後のステップは、libjvm.dylib を /usr/local/lib にリンクすることでした。
sudo ln -f -s $(/usr/libexec/java_home)/jre/lib/server/libjvm.dylib /usr/local/lib
-f
フラグが追加され、既存のファイル/リンクを強制的に上書きします。
関連
-
Springの設定でxsdファイルのバージョン番号を設定しない方が良い理由
-
JAVA_HOME環境変数が正しく定義されていない問題を解決する
-
Junitのユニットテストはjava.lang.Testを報告します。
-
maven レポート エラー 解決不可能な親POM
-
eclipse 実行 Java、エラー: 選択を起動できず、レシーバーもありません。
-
Java:未解決コンパイル問題の解決方法
-
Java基礎 - マッピングとQ/A
-
テストが空であるかどうかを判断するためのオプションの処理
-
switch case文のcaseの後の列挙定数は列挙型なし
-
linux ant Resolve error: main class not found or couldn't be loaded org.apache.tools.ant.launcher.
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Eclipseは、ポップアップA Java Exception has occurred.を実行し、エラーException in threadの解決策を報告します。
-
型に解決できない エラー解決
-
Uncaught ReferenceError: は定義されていません。
-
無効なメソッド宣言
-
-bash: java: コマンドが見つからない 解決方法
-
Junitのユニットテストはjava.lang.Testを報告します。
-
Java基礎編 - オブジェクト指向
-
Javaがリソースリークに遭遇した:'input'が閉じない 解決方法
-
ecplise プロンプトが表示されます。"選択したものは起動できません。" "最近の起動はありません。"
-
htmlとwordの相互変換の実装(画像あり)