web-dev-qa-db-ja.com

rJavaが正しいJavaバージョンを取得していません

私はしばらくの間この問題に苦しんでいます。 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_を取得します

これに対する解決策を知っているなら、私に知らせてください。

8
user2843669

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

12
Haroon Rashid

この場合に私を助けたのは2つのことでした(ここからのアドバイスに従う: https://www3.ntu.edu.sg/home/ehchua/programming/howto/JDK_Howto.html

  • 使用するJavaインストールをUbuntuに通知します。

このために私は走った:

$ 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/
1
Obnebion