156

rJavaWin764ビットを搭載したコンピューターにインストールしようとしています。私が走るとき

install.packages("rJava")

すべてがうまくいくようです:

Installing package(s) into ‘C:/Users/djq/Documents/R/win-library/2.13’
(as ‘lib’ is unspecified)
trying URL 'http://software.rc.fas.harvard.edu/mirrors/R/bin/windows/contrib/2.13/rJava_0.9-1.zip'
Content type 'application/zip' length 654936 bytes (639 Kb)
opened URL
downloaded 639 Kb

package 'rJava' successfully unpacked and MD5 sums checked

The downloaded packages are in
    C:\TEMP\RtmpW2eAUw\downloaded_packages

しかし、ライブラリlibrary(rJava)をロードしようとすると、次のエラーが発生します。

Error : .onLoad failed in loadNamespace() for 'rJava', details:
  call: inDL(x, as.logical(local), as.logical(now), ...)
  error: unable to load shared object 'C:/Users/me/Documents/R/win-library/2.13/rJava/libs/x64/rJava.dll':
  LoadLibrary failure:  %1 is not a valid Win32 application.

Error: package/namespace load failed for 'rJava'

Java JRE(32ビットと64ビットの両方のバージョンを試す)とJDK(32ビットと64ビットの両方を使用)をインストールしました。私のRバージョンはR version 2.13.1 (2011-07-08)RStudioを使用しています。

32ビットRを使用してみると、問題なくロードできますrJava。問題はrJava、R 64ビットでは実行されないということですか?パッケージが64ではなく32用であるかどうかを確認するにはどうすればよいですか?


編集:投稿したばかりR.version()

> R.Version()
$platform
[1] "x86_64-pc-mingw32"

$arch
[1] "x86_64"

$os
[1] "mingw32"

$system
[1] "x86_64, mingw32"

$status
[1] ""

$major
[1] "2"

$minor
[1] "13.1"

$year
[1] "2011"

$month
[1] "07"

$day
[1] "08"

$`svn rev`
[1] "56322"

$language
[1] "R"

$version.string
[1] "R version 2.13.1 (2011-07-08)"
4

13 に答える 13

160

更新 (2018 年 7 月):

rJava の最新の CRAN バージョンは、またはjvm.dllを手動で設定しなくても、 を自動的に検出します。ただし、次の点に注意してください。PATHJAVA_HOME

  • 32 ビット R で rJava を使用するには、Java for Windows x86が必要です。
  • 64 ビット R で rJava を使用するには、Java for Windows x64が必要です。
  • マルチアーキテクチャ (デフォルト) で R パッケージをビルドまたはチェック するには、 Java for Windows x64Java for Windows x86 の両方をインストールする 必要があります。Win 64 では、前者がインストールされ、後者がインストールされるため、競合しません。C:\Program files\Java\C:\Program Files (x86)\Java\

Java バージョン 9 の時点で、x86 (win32) のサポートは中止されました。したがって、最新のマルチアーキテクチャ セットアップは、jdk-8u172-windows-i586.exejdk-8u172-windows-x64.exeの両方をインストールしてから、CRAN からバイナリ パッケージをインストールすることです。

install.packages("rJava")

CRAN のバイナリ パッケージは、それ自体で jvm を取得する必要があります。エキスパートのみ--merge-multiarch: ソースから rJava をビルドするには、次のフラグが必要です。

install.packages('rJava', type = 'source', INSTALL_opts='--merge-multiarch')

古いアンサー:

(注:他の回答/コメントの多くの人々がJAVA_HOMEを削除するように言っているので、それを考慮してください。以下のすべての手順がまだ必要かどうかを知るために、最近この問題を再訪していません。)

ここでは、Windows 7 64 ビットで R + rJava を起動して実行する方法についての簡単なアドバイスを示します。いくつかの可能性がありますが、ほとんどの場合、致命的な欠陥があります。これが私のために働いたものです:

jvm.dll を PATH に追加します

R<->Java ブリッジである rJava には jvm.dll が必要ですが、R はその DLL を見つけるのに苦労します。のようなフォルダにあります。

C:\Program Files\Java\jdk1.6.0_25\jre\bin\server

また

C:\Program Files\Java\jre6\jre\bin\client

どこにいても、そのディレクトリを Windows の PATH 変数に追加します。(Windows -> 「パス」 -> 「アカウントの環境変数を編集」 -> PATH -> 値を編集します。)

すでに PATH に Java が含まれている場合があります。その場合、クライアント/サーバー ディレクトリは、既に PATH にあるディレクトリと同じ Java "ホーム" ディレクトリにあります。

安全のために、アーキテクチャが一致していることを確認してください。Java がProgram Filesにある場合は 64 ビットなので、R64 を実行する必要があります。に Java がある場合Program Files (x86)、それは 32 ビットなので、プレーンな 32 ビット R を使用します。

Windows メニューから R を再起動します。

R が実行中の場合は終了します。

スタート メニュー から、R/RGUI、RStudio を起動します。これは、R に PATH の変更を反映させるために非常に重要です。

rJava 0.9.2 をインストールします。

以前のバージョンは動作しません! ミラーは最新のものではないため、www.rforge.net のソース ( http://www.rforge.net/rJava/files/ ) にアクセスしてください。そこのアドバイスに注意してください

“Please use

`install.packages('rJava',,'http://www.rforge.net/')`

to install.”

それはほぼ正しいです。これは実際に機能します:

install.packages('rJava', .libPaths()[1], 'http://www.rforge.net/')

句読点に注意!不可解な「.libPaths()[1]」は、R にパッケージをプライマリ ライブラリ ディレクトリにインストールするように指示するだけです。何らかの理由で、値を空白のままにしておくと、デフォルトのはずなのに機能しません。

于 2011-09-29T23:26:29.140 に答える
116

rJava を動作させるには、コンピューターの構成に大きく依存します。

  1. R と JDK/JRE の両方に同じ32 ビットまたは 64 ビット バージョンを使用する必要があります。これの混合は決してうまくいきません(少なくとも私にとっては)。
  2. 64 ビット版を使用する場合は、JAVA_HOMEを環境変数として設定していないことを確認してください。この変数が設定されている場合、rJava は何らかの理由で (少なくとも私にとっては) 機能しません。R内でJAVA_HOMEが設定されていることを簡単に確認できます

    Sys.getenv("JAVA_HOME")
    

JAVA_HOME を設定する必要がある場合 (たとえば、maven などで必要な場合)、rJava をロードする前に、次のコードを使用して R セッション内で無効にすることができます。

if (Sys.getenv("JAVA_HOME")!="")
  Sys.setenv(JAVA_HOME="")
library(rJava)

ほとんどの場合、これでうまくいくはずです。さらに、これにより、Win7 64 ビットで R を使用して rJava パッケージを使用する際の問題も修正されます。R: rJava package install failingから環境変数の設定を解除するというアイデアを借りました。

于 2013-04-14T11:05:01.060 に答える
8

最後の質問には簡単な答えがあります。

> .Machine$sizeof.pointer
[1] 8

つまり、R64を実行しています。32 ビット R を実行していた場合、4 が返されます。64 ビット OS を実行しているからといって、64 ビット R を実行しているとは限りません。エラー メッセージから、そうではないようです。

編集: パッケージにバイナリがある場合、それらは別のディレクトリにあります。詳細は OS によって異なります。私の MacOS システムでは、... rJava ...rJava/libs/x64/... /libs/...` フォルダに i386、ppc、および x86_64 の 3 つのサブディレクトリがあります。(ppc ファイルは明らかに役に立たない荷物です。)

于 2011-08-11T03:40:41.290 に答える
4

rJavaに関連する問題がありました。それはロードされますが、それに依存するパッケージはロードされません。

インストーラーに i386 のことを忘れさせるのが本当の修正である場合、ユーザーは jvm.dll と PATH と JAVA_HOME で多くの時間を浪費する可能性があります。install.packages のオプションを使用します。(これは、drat ライブラリが使用されている場合にも機能します。(クレジットは Dason に送られます)

install.packages("SqlRender",INSTALL_opts="--no-multiarch")

また、次のような win コマンドを使用して、ユーザー パスだけを変更することもできます。

setx PATH "C:\Program Files\Java\jre1.8.0_102\bin\server;%PATH%"
于 2016-07-07T20:01:42.137 に答える
0

これはアップデートだと思います。Javac が見つからず、Windows コマンド プロンプトで javac が機能し ない ため、JDK をインストールするまで (Windows に) rJava をインストールできませんでした 。私が受け取っていたメッセージは

'javac' is not recognized as an internal or external command, operable program or batch file.

JDK には JRE が含まれており、 https ://cran.r-project.org/web/packages/rJava/index.html によると 、rJava の現在のバージョン (2015 年 7 月 29 日公開の 0.9-7)

SystemRequirements:     Java JDK 1.2 or higher (for JRI/REngine JDK 1.4 or higher), GNU make

つまり、javac が見つからないために rJava がインストールされず、JRE がインストールされている場合は、JDK を試してください。また、JAVA_HOMEJRE ではなく JDK を指していることを確認してください。

于 2015-09-15T23:36:18.443 に答える
0

非常に多くの答えがありましたが、私にとっては何もうまくいきませんでした.
ときどきこの問題に遭遇し、Google で時間を無駄にします。
これが私にとってDIDが機能するものでWindows 10、すべてが完全に更新されています。

  1. JDKこの記事を書いている時点でJRE 8u301の最新バージョンをダウンロードするためにここに行きました。
    Oracle の最新の Java ダウンロード リンク
    注: アカウントを作成するか、自分のアカウントにログインする必要がありました。時間もかからず、無料です。心配する必要はありません。
  2. exe前の手順でダウンロードしたものを使用して、JRE と JDK をインストールしました。
  3. Rstudio(または でR)、私は を走りSys.setenv(JAVA_HOME='C:\\Program Files\\Java\\jdk1.8.0_301')ました。
  4. 実行install.packages("rJava")すると、目的のDONE (rJava). (もちろん、あなたもRtoolsインストールしていると思いますが、言うまでもありません...)

かなりシンプルで簡単です。正しい手順で、3分かかりました。

于 2021-09-26T17:33:57.093 に答える
0

これは、更新 (2018 年 7 月) のフォローアップです。私は64ビットのWindows 10を使用していますが、Rtoolsを使用して32ビットと64ビットの両方のソースからrパッケージをビルドするように設定しています。私の 64 ビット jdk は jdk-11.0.2 です。できるときは、すべて RStudio で行います。2019 年 3 月現在、rjava は <=jdk11 でテストされています。github issue #157を参照してください。

  • @Jeroen による更新 (2018 年 7 月) ごとに、jdk をデフォルトの場所にインストールします。
  • R studio で、JAVA_HOME を 64 ビット jdk に設定します。

Sys.setenv(JAVA_HOME="C:/Program Files/Java/jdk-11.0.2")

  • 必要に応じて、環境変数を確認してください

Sys.getenv("JAVA_HOME")

  • github ページの推奨に従ってパッケージをインストールします

install.packages("rJava",,"http://rforge.net")

参考までに、rstudio スクリプト コンソールは 2 つのコンマを好みませんが、機能します!

于 2019-03-28T13:20:18.773 に答える