私はしばらくの間この問題に苦しんでいます。 RからrJavaをインストールすると、1.8ではなくJava 1.6になります。MACOS10.8.5を使用しています。これらは、すでに実行した手順です。
Rをインストールしました。
マシンにJava 1.6と1.8の両方があります。
ターミナルからRを再構成しました:_Sudo R CMD javareconf -n
_。
出力は次のようになります。
Javaインタープリター:/ usr/bin/Java Javaバージョン:1.8.0_25 Javaホームパス:/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/ Home/jre Javaコンパイラ:/ usr/bin/javac Javaヘッダー生成:/ usr/bin/javah Javaアーカイブツール:/ usr/bin/jar 非システムJava on OS X
jNIプログラムをコンパイルしてリンクしようとしています
検出されたJNIcppフラグ:-I $(Java_HOME)/../ include -I $(Java_HOME)/../ include/darwin 検出されたJNIリンカーフラグ:-L $(Java_HOME)/lib/server -ljvm gcc -Arch x86_64 -std = gnu99 -I/Library/Frameworks/R.framework/Resources/include -DNDEBUG -I/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk /Contents/Home/jre/../include -I/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/jre /../ include/darwin -I/usr/local/include -fPIC- mtune = core2 -g -O2 -c conftest.c -o conftest.o gcc -Arch x86_64 -std = gnu99 -dynamiclib -Wl、-headerpad_max_install_names -undefined dynamic_lookup -single_module -multiply_definedsuppress -L/Library/Frameworks/R.framework/Resources/lib -L / usr/local/lib -L / usr/local/lib -o conftest.so conftest.o -L/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/jre/lib/server -ljvm -F/Library/Frameworks/R.framework/.. -framework R -Wl、-framework -Wl、CoreFoundation Java_HOME:/ Library/Java/JavaVirtua lMachines/jdk1.8.0_25.jdk/Contents/Home/jre Javaライブラリパス:$(Java_HOME)/ lib/server JNI cppフラグ:-I $(Java_HOME)/../ include -I $(Java_HOME)/../ include/darwin JNIリンカーフラグ:-L $(Java_HOME)/ lib/server -ljvm
次に、Rに進み、次のようにソースとしてrJavaパッケージをインストールしました:install.packages("rJava", type="source")
そしてDONE(rJava)
に到達します
次に、以下を使用してバージョンを確認すると、
library(rJava) 。jinit() 。jcall( "Java/lang/System"、 "S"、 "getProperty"、 "Java.runtime.version")
_1.6.0_25-b17
_の代わりに_1.8
_を取得します
これに対する解決策を知っているなら、私に知らせてください。
RJavaの最新バージョンでは、この問題が修正されています。コマンドを使用して site から最新バージョンをインストールしました
install.packages("rJava",,"http://rforge.net/",type="source")
これで、jvmを呼び出すことによる出力は次のようになります。
> library(rJava)
> .jinit()
> .jcall("Java/lang/System", "S", "getProperty", "Java.runtime.version")
[1] "1.7.0_75-b13"
注:Java 1.7および1.6がインストールされていますが、Java 1.8
この場合に私を助けたのは2つのことでした(ここからのアドバイスに従う: https://www3.ntu.edu.sg/home/ehchua/programming/howto/JDK_Howto.html )
このために私は走った:
$ Sudo update-alternatives --install "/usr/bin/Java" "Java" "/usr/Java/jdk1.8.0_201/bin/Java" 1
$ Sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/Java/jdk1.8.0_201/bin/javac" 1
$ Sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/Java/jdk1.8.0_201/bin/javaws" 1
に続く
$ Sudo update-alternatives --set Java /usr/Java/jdk1.8.0_201/bin/Java
$ Sudo update-alternatives --set javac /usr/Java/jdk1.8.0_201/bin/javac
$ Sudo update-alternatives --set javaws /usr/Java/jdk1.8.0_201/bin/javaws
その後、私は最終的に私のJavaの選択肢で見ることができました
Sudo update-alternatives --config Java
ここで、新しくインストールしたJavaを選択しました。それから私は走った
Sudo R CMD javareconf Java_HOME=/usr/Java/jdk1.8.0_201/bin/