web-dev-qa-db-ja.com

R-Project:xlsxパッケージのインストール失敗(Javaの問題が原因)

Xlsxパッケージをインストールしようとしていましたが、残念ながらJavaに問題があり、解決できません。

パッケージxlsxをインストールしようとしたときに生成される出力を以下に示します。

出力は次のとおりです。


R version 3.1.1 (2014-07-10) -- "Sock it to Me"
Copyright (C) 2014 The R Foundation for Statistical Computing
Platform: x86_64-redhat-linux-gnu (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

  Natural language support but running in an English locale

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

> install.packages("xlsx")
Installing package into ‘/home/tamaspavlicek/R/x86_64-redhat-linux-gnu-library/3.1’
(as ‘lib’ is unspecified)
also installing the dependencies ‘rJava’, ‘xlsxjars’

trying URL 'contrib/rJava_0.9-6.tar.gz'
Content type 'application/x-gzip' length 567515 bytes (554 Kb)
opened URL
==================================================
downloaded 554 Kb

trying URL 'contrib/xlsxjars_0.6.1.tar.gz'
Content type 'application/x-gzip' length 9477071 bytes (9.0 Mb)
opened URL
==================================================
downloaded 9.0 Mb

trying URL 'contrib/xlsx_0.5.7.tar.gz'
Content type 'application/x-gzip' length 312839 bytes (305 Kb)
opened URL
==================================================
downloaded 305 Kb

* installing *source* package ‘rJava’ ...
** package ‘rJava’ successfully unpacked and MD5 sums checked
checking for gcc... gcc -m64 -std=gnu99
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc -m64 -std=gnu99 accepts -g... yes
checking for gcc -m64 -std=gnu99 option to accept ISO C89... none needed
checking how to run the C preprocessor... gcc -m64 -std=gnu99 -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for ANSI C header files... yes
checking for sys/wait.h that is POSIX.1 compatible... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for string.h... (cached) yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking for unistd.h... (cached) yes
checking for an ANSI C-conforming const... yes
checking whether time.h and sys/time.h may both be included... yes
configure: checking whether gcc -m64 -std=gnu99 supports static inline...
yes
checking whether setjmp.h is POSIX.1 compatible... yes
checking whether sigsetjmp is declared... yes
checking whether siglongjmp is declared... yes
checking Java support in R... present:
interpreter : '/bin/Java'
archiver    : '/bin/jar'
compiler    : '/bin/javac'
header prep.: '/bin/javah'
cpp flags   : '-I/usr/lib/jvm/Java-1.7.0-openjdk-1.7.0.71-2.5.3.0.fc20.x86_64/jre/../include -I/usr/lib/jvm/Java-1.7.0-openjdk-1.7.0.71-2.5.3.0.fc20.x86_64/jre/../include/linux'
Java libs   : '-L/usr/lib/jvm/Java-1.7.0-openjdk-1.7.0.71-2.5.3.0.fc20.x86_64/jre/lib/AMD64/server -ljvm'
checking whether Java run-time works... 
Error: Could not find or load main class getsp
no
configure: error: Java interpreter '/bin/Java' does not work
ERROR: configuration failed for package ‘rJava’
* removing ‘/home/tamaspavlicek/R/x86_64-redhat-linux-gnu-library/3.1/rJava’
Warning in install.packages :
  installation of package ‘rJava’ had non-zero exit status
ERROR: dependency ‘rJava’ is not available for package ‘xlsxjars’
* removing ‘/home/tamaspavlicek/R/x86_64-redhat-linux-gnu-library/3.1/xlsxjars’
Warning in install.packages :
  installation of package ‘xlsxjars’ had non-zero exit status
ERROR: dependencies ‘rJava’, ‘xlsxjars’ are not available for package ‘xlsx’
* removing ‘/home/tamaspavlicek/R/x86_64-redhat-linux-gnu-library/3.1/xlsx’
Warning in install.packages :
  installation of package ‘xlsx’ had non-zero exit status

The downloaded source packages are in
    ‘/tmp/Rtmpj1UG8a/downloaded_packages’

Javaがインストールされています。

Java -versionは次の出力を提供します。

Java version "1.7.0_71"
OpenJDK Runtime Environment (Fedora-2.5.3.0.fc20-x86_64 u71-b14)
OpenJDK 64-Bit Server VM (build 24.65-b04, mixed mode)

「Sudo R CMD javareconf」は次の原因になります。

Java interpreter : /bin/Java
Java version     : 1.7.0_71
Java home path   : /usr/lib/jvm/Java-1.7.0-openjdk-1.7.0.71-2.5.3.0.fc20.x86_64/jre
Java compiler    : /bin/javac
Java headers gen.: /bin/javah
Java archive tool: /bin/jar

trying to compile and link a JNI progam 
detected JNI cpp flags    : -I$(Java_HOME)/../include -I$(Java_HOME)/../include/linux
detected JNI linker flags : -L$(Java_HOME)/lib/AMD64/server -ljvm
gcc -m64 -std=gnu99 -I/usr/include/R -DNDEBUG -I/usr/lib/jvm/Java-1.7.0-openjdk-1.7.0.71-2.5.3.0.fc20.x86_64/jre/../include -I/usr/lib/jvm/Java-1.7.0-openjdk-1.7.0.71-2.5.3.0.fc20.x86_64/jre/../include/linux -I/usr/local/include    -fpic  -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches  -m64 -mtune=generic  -c conftest.c -o conftest.o
gcc -m64 -std=gnu99 -shared -Wl,-z,relro -o conftest.so conftest.o -L/usr/lib/jvm/Java-1.7.0-openjdk-1.7.0.71-2.5.3.0.fc20.x86_64/jre/lib/AMD64/server -ljvm -L/usr/lib64/R/lib -lR


Java_HOME        : /usr/lib/jvm/Java-1.7.0-openjdk-1.7.0.71-2.5.3.0.fc20.x86_64/jre
Java library path: $(Java_HOME)/lib/AMD64/server
JNI cpp flags    : -I$(Java_HOME)/../include -I$(Java_HOME)/../include/linux
JNI linker flags : -L$(Java_HOME)/lib/AMD64/server -ljvm
Updating Java configuration in /usr/lib64/R
Done.

それにもかかわらず、install.packages( 'rJava')は次のようになります。

checking Java support in R... present:
interpreter : '/bin/Java'
archiver    : '/bin/jar'
compiler    : '/bin/javac'
header prep.: '/bin/javah'
cpp flags   : '-I/usr/lib/jvm/Java-1.7.0-openjdk-1.7.0.71-2.5.3.0.fc20.x86_64/jre/../include -I/usr/lib/jvm/Java-1.7.0-openjdk-1.7.0.71-2.5.3.0.fc20.x86_64/jre/../include/linux'
Java libs   : '-L/usr/lib/jvm/Java-1.7.0-openjdk-1.7.0.71-2.5.3.0.fc20.x86_64/jre/lib/AMD64/server -ljvm'
checking whether Java run-time works... 
Error: Could not find or load main class getsp
no
configure: error: Java interpreter '/bin/Java' does not work
ERROR: configuration failed for package ‘rJava’
* removing ‘/home/tamaspavlicek/R/x86_64-redhat-linux-gnu-library/3.1/rJava’
Warning in install.packages :
  installation of package ‘rJava’ had non-zero exit status

The downloaded source packages are in
    ‘/tmp/Rtmpnl17m7/downloaded_packages’

このJava問題を解決する方法がわかりません。RStudioとFedoraを使用しています。ご協力いただきありがとうございます。

ありがとう

タマス

12
tamasp

Javaがインストールされている場合は、コマンドラインからRのJava構成をリセットしてみてください。

Sudo R CMD javareconf

次に、rJavaのみをもう一度インストールしてみます(最初にRStudioを再起動する場合があります)。

install.packages('rJava')

これでも問題が解決しない場合、エラーはRがgetspをロードできなかったことを示しています。

checking whether Java run-time works... 
Error: Could not find or load main class getsp

まず、getspにアクセスできることを確認します。

locate getsp

出力にはいくつかの項目が含まれる場合がありますが、次のようなものが見つかります。

/usr/share/R/share/Java/getsp.class

次に、これにアクセスできるようにして、エクスポートしてRが見つけられるようにします。

export CLASSPATH=/usr/share/R/share/Java

同じウィンドウで、別のRセッションを開始し、rJavaを再度インストールしてみます。

もう1つは、Java_HOMEでjavareconfを再実行することです。

export Java_HOME=/usr/lib/jvm/Java-1.7.0-openjdk-1.7.0.71.x86_64/jre
export PATH=$PATH:$Java_HOME/bin
Sudo R CMD javareconf

unset CLASSPATHrJavaの問題 では、将来的に他の問題が発生する可能性があります。それでも問題が解決しない場合は、Java_HOMEを変更する前にこれを実行し、再度リセットする必要があります。

[〜#〜]編集[〜#〜]

この質問がかなり長い間「未回答」のままであることを考えると、Javaを使用しない代わりに readxl パッケージを使用するという推奨も追加する必要があると考えました。インストールがはるかに簡単で、tidyverseの一部です。 Excelファイルを操作しようとする人のための一般的な推奨事項です。

15
cdeterman

さて、ホームフォルダーの.bashrcに「Java_HOME =/usr/lib/jvm/Java-1.8.0-openjdk-1.8.0.25.x86_64/jre /」を追加して、ようやく管理しました。

Cdeterman、助けてくれてありがとう。

最高のタマ

3
tamasp

それはJavaの問題です。システムにJavaがインストールされていないと思います。Javaがすでにインストールされているかどうかを確認してください:

Java -version

「プログラムJavaは次のパッケージにあります」が返された場合、Javaはまだインストールされていないため、次のコマンドを実行します。

Sudo apt-get install default-jre
Sudo apt-get install default-jdk

次に、パッケージを再インストールしてください。

0
Che