Win7 64 bit rJava paketini R ile kullanma


149

rJavaWin 7 64 bit yüklü bir bilgisayara yüklemeye çalışıyorum . Koştuğumda

install.packages("rJava")

her şey iyi görünüyor:

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

ancak kitaplığı yüklemeye çalıştığımda library(rJava)aşağıdaki hatayı alıyorum:

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 (hem 32 hem de 64 bit sürümlerini deniyor) ve JDK'yı (hem 32 hem de 64 bit kullanarak) yükledim. Benim R sürümü R version 2.13.1 (2011-07-08)ve ben RStudio kullanıyorum.

32 bit R kullanmayı denersem rJavaiyi yükleyebilirim . Sorun sadece rJavaR 64 bit'te çalışmaz mı? Bir paketin 64 yerine sadece 32 olup olmadığını nasıl anlarım?


düzenleme: sadece yayınladı 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)"

Sonuçlarını R.Version()sorunuza yapıştırabilir misiniz ? Sorunuzda rJavaaçıkladığınız yöntemi kullanarak 64bit sürümünü yeni yükledim . Tahminimce R sürümünüz 32 bit.
Andrie

pls nasıl çözdüğünü ans paylaşın.
bigData

1
Buraya bir yorum eklemek birisine tüm çözüm listesini gözden geçirme görevine yardımcı olabilir. Yukarıdaki hatayı alırsanız, Java'nızın Program Filesveya içinde olup olmadığını kontrol edin Program Files (x86). Kabul edilen yanıtın söylediği gibi pencerelere yol ekleyin. Bu Program Files (x86), 32 bit sürümünüz olduğu anlamına geliyorsa, sites.google.com/site/rforfishandwildlifegrads/home/week_2/… bağlantısını izleyin .
Divi

Yanıtlar:


154

Güncelleme (Temmuz 2018):

RJava'nın en son CRAN sürümü jvm.dll, PATHveya öğesini manuel olarak ayarlamadan otomatik olarak bulacaktır JAVA_HOME. Ancak şunu unutmayın:

  • 32 bit R'de rJava kullanmak için Windows x86 için Java'ya ihtiyacınız var
  • 64 bit R'de rJava kullanmak için Windows x64 için Java'ya ihtiyacınız var
  • Çoklu kemer içeren (varsayılan) R paketleri oluşturmak veya kontrol etmek için hem Windows x64 için Java hem de Windows x86 için Java yüklemeniz gerekir . Win 64'te, eski yüklenir C:\Program files\Java\ve ikincisi C:\Program Files (x86)\Java\çakışmazlar.

Java sürüm 9'dan itibaren, x86 (win32) desteği durduruldu. Bu nedenle, en son çalışan çoklu kemer kurulumu, hem jdk-8u172-windows-i586.exe hem de jdk-8u172-windows-x64.exe'yi ve ardından CRAN'dan ikili paketi yüklemektir :

install.packages("rJava")

CRAN ikili paketi kendi başına jvm almak gerekir. Yalnızca uzmanlar : rJava'yı kaynaktan oluşturmak için --merge-multiarchbayrağa ihtiyacınız vardır :

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

Eski satıcı:

(Not: diğer cevaplar / yorumlarda millet çoğu JAVA_HOME kaldırmak için söylediler, bu yüzden düşünün. Aşağıdaki tüm adımların hala gerekli olup olmadığını bilmek için son zamanlarda bu sorunu tekrar gözden geçirmedim.)

İşte Windows 7 64bit üzerinde R + rJava ile nasıl başlayacağınız ve çalışacağınız hakkında hızlı öneriler. Birkaç olasılık var, ancak çoğunda ölümcül kusurlar var. İşte benim için işe yarayan:

PATH'inize jvm.dll dosyasını ekleyin

rJava, R <-> Java köprüsü, jvm.dll'ye ihtiyaç duyacaktır, ancak R bu DLL dosyasını bulmada sorun yaşayacaktır. Gibi bir klasörde bulunur

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

veya

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

Nerede olursanız olun, bu dizini windows PATH değişkeninize ekleyin. (Windows -> "Yol" -> "Hesabınız için ortam değişkenlerini şuraya düzenle" -> YOL -> değeri düzenleyin.)

PATH'inizde zaten Java olabilir. Eğer öyleyse, istemci / sunucu dizinini PATH'nizle aynı Java "home" dizininde bulmalısınız.

Güvende olmak için, mimarilerinizin eşleştiğinden emin olun. Java'nız varsa Program Files, 64 bittir, bu yüzden R64'ü çalıştırmalısınız. Java'nız varsa Program Files (x86), bu 32 bittir, bu nedenle düz 32 bit R kullanırsınız.

Windows Menüsü'nden R'yi yeniden başlatın

R çalışıyorsa, çıkın.

Başlat Menüsünden Başlat R / RGUI, RStudio. R'nin PATH değişikliklerinizi alması için bu çok önemlidir.

RJava 0.9.2'yi yükleyin.

Önceki sürümler çalışmıyor! Aynalar güncel değil, bu yüzden www.rforge.net adresindeki kaynağa gidin: http://www.rforge.net/rJava/files/ . Oradaki tavsiyelere dikkat edin

“Please use

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

to install.”

Bu neredeyse doğru. Bu aslında işe yarıyor:

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

Noktalama işaretlerini izleyin! Gizemli “.libPaths () [1]”, R'ye paketi birincil kütüphane dizinine kurmasını söyler. Bazı nedenlerden dolayı, varsayılan değer olsa da, değeri boş bırakmak işe yaramaz.


4
İkinci argümanı boş bırakmak yerine, bunu yapabilirsiniz install.packages('rJava', repos='http://www.rforge.net/').
Ken Williams

2
@ User2161065 tarafından yanıtta belirtildiği gibi, rJava'nın yüklenmesi için JAVA_HOME değişkeninin kaldırılması gerekiyor
David LeBauer

1
Tüm bunlar gerekebilir, ancak bunu yaptıktan sonra bile @ user2161065
ajkl 13:13

3
+1 ...\jre\bin\serverYola ekleme benim için düzeltildi
mchen

6
Bu "Windows PATH" değişkenini nerede bulabiliriz?
Shreyes

114

RJava'nın çalışması büyük ölçüde bilgisayar yapılandırmanıza bağlıdır:

  1. R ve JDK / JRE için aynı 32bit veya 64bit sürümünü kullanmanız gerekir . Bunun bir karışımı asla işe yaramaz (en azından benim için).
  2. Eğer varsa 64bit kullanmak emin sürüm markasını, bunu JAVA_HOME ayarlamayın bir Enviorment değişken olarak. Bu değişken ayarlanırsa, rJava herhangi bir nedenle (en azından benim için) çalışmaz. R içinde kolayca kontrol edebilirsiniz JAVA_HOME ile ayarlanır

    Sys.getenv("JAVA_HOME")

JAVA_HOME'u ayarlamanız gerekiyorsa (örneğin, maven veya başka bir şey için ihtiyacınız vardır), rJava'yı yüklemeden önce R-oturumunuzda aşağıdaki kodla devre dışı bırakabilirsiniz:

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

Bu çoğu durumda hile yapmalıdır. Ayrıca bu, R ile Win7 64 bit üzerinde rJava paketinin kullanılması sorununu çözecektir. Enviorment değişkenini R: rJava paket kurulumundan başarısız kılma fikrini ödünç aldım .


20
JAVA_HOME'dan kurtulana kadar önceki çözümler işe yaramadı. Bu anahtar.
bshor

15
Bu JAVA_HOME sorunu rJava'ya bir hata olarak bildirilmelidir.
Çırak Kuyruğu

2
Bu benim için gerçekten hile yaptı: if (Sys.getenv ("JAVA_HOME")! = "") Sys.setenv (JAVA_HOME = "") kütüphane (rJava) Teşekkürler @ user2161065
ajkl 13:03

JAVA_HOME var kaldırmak için bu komut dosyası eklemek benim için çalıştı!
Richard

1
Bu çözüm rJava'ya bağlı XLConnect ve XLConnectJars gibi paketler için de çalışır. (Arama motorlarının bu sayfada bulduğum sorundan daha kolay alabilmesi için bu bariz yorumu yazıyorum.)
Tripartio

31

Benim için, JAVA_HOME'u ayarlamak hile yaptı (burada verilen başka bir cevapta olduğu gibi , ayarlamak yerine). Windows'da:

set JAVA_HOME="C:\Program Files\Java\jre7\"

Veya R'nin içinde:

Sys.setenv(JAVA_HOME="C:\\Program Files\\Java\\jre7\\")

Ama muhtemelen en iyi çözüm nedir (rJava 0.9-4), R içinde Windows JAVA_HOME ayarını tamamen geçersiz kılıyor:

options(java.home="C:\\Program Files\\Java\\jre7\\")
library(rJava)

2
JAVA_HOME env değişkenini geçersiz kılma ve R'de ayarlama hakkında +1
carnust

Benim JAVA_HOME (Java geliştirme de yaptığım gibi) bir JDK klasörüne ayarlandı ve rJava sahip değildi. Son düzeltme (seçenekler) kullandım çünkü güzel çalışan bir Java geliştirme ortamıyla uğraşmak istemiyorum. Teşekkürler!
chaslewis

1
options(java.home="my\\path\\to\\jre")ortam ayarlamak da dahil olmak üzere her şey başarısız olduğunda çalıştı, PATH
Daniel Krizian

Bu benim için çalıştı: options(java.home="C:\\Program Files\\Java\\jdk1.8.0_144\\jre"). Jdk1.8'iniz varsa.
saubhik

Open JDK'yi benimsemeyi kullanarak bu son öneri benim için çalıştı. Diğer tüm popüler çözümler başarısız oldu.
Ola Caster

7

Son sorunun cevabı kolay:

> .Machine$sizeof.pointer
[1] 8

Yani R64 kullanıyorum. Eğer 32 bit R çalıştırıyor olsaydım, 4 dönecekti. Sadece 64 bit işletim sistemi çalıştırdığınız için 64 bit R çalıştıracağınız anlamına gelmez ve hata mesajından görünmüyorsunuz.

EDIT: Pakette ikili dosyalar varsa, bunlar ayrı dizinlerde bulunur. Ayrıntılar işletim sistemine bağlı olacaktır. LoadLibrary hatasının ...rJava/libs/x64/... MacOS sistemimdeki dll dosyasını bulmaya çalıştığında oluştuğuna dikkat edin ... rJava / libs / ... `klasörü 3 alt dizine sahiptir: i386, ppc ve x86_64. (Ppc dosyaları açıkçası işe yaramaz bagaj.)


RStudio kurulumum 64bit R'ye işaret etti. 32bit olarak değiştirdiğimde rJavapaketi içe aktarabilirim . Bu yüzden neler olup bittiğinin tam tersi gibi göründüğü için hata mesajı hakkında çok kafam karıştı.
djq

4

Necro için özür dilerim. Ben de aynı sorunla karşılaştı ve JRE işaret rJavabekliyor JAVA_HOME. JDK yüklüyse, büyük olasılıkla JAVA_HOMEJDK'ya dikkat edin. Hızlı çözümüm:

Sys.setenv(JAVA_HOME=paste(Sys.getenv("JAVA_HOME"), "jre", sep="\\"))

3

Önceki yanıtlar tam olarak benim için çalışmadığından, bu sorunla karşılaştığımda yüklenen Java paketini belirlerken bazı sorunlar yaşadım. Bunu çözmek için şunu yazdım:

Sys.setenv(JAVA_HOME="C:/Program Files/Java/

ve sonra sekmeye basın ve önerilen iki dizin "jre1.8.0_31 /" ve "jre7 /"

Jre7 sorunumu çözmedi, ama jre1.8.0_31 / çözdü. Son cevap çalışıyordu (kitaplıktan önce (rJava)):

Sys.setenv(JAVA_HOME="C:/Program Files/Java/jre1.8.0_31/")

64-bit Windows 8.1 kullanıyorum Bu başka birine yardımcı olur umarım.

Güncelleme:

X'in ne olması gerektiğini belirlemek için sürümünüzü kontrol edin (bu yayından bu yana benimki birkaç kez değişti):

Sys.setenv(JAVA_HOME="C:/Program Files/Java/jre1.8.0_x/")

3

RJava ile ilgili bir sorunum vardı. Yükleyecekti, ancak ona bağlı bir paket yüklenmeyecekti.

Gerçek düzeltme yükleyiciyi sadece i386'yı unutmaya zorlamak olduğunda kullanıcılar jvm.dll ve PATH ve JAVA_HOME ile çok zaman kaybedebilir. İnstall.packages seçeneğini kullanın. (bu aynı zamanda drat kütüphanesi kullanıldığında da çalışır. (kredi Dason'a gider)

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

Ayrıca, yalnızca kullanıcı yolunuzu aşağıdaki gibi bir kazan komutuyla değiştirebilirsiniz:

setx PATH "C:\Program Files\Java\jre1.8.0_102\bin\server;%PATH%"

0

Tarayıcım için 32 bit JRE olmalı, ancak R ve rJava için 64 bit JRE olmalı. 32 bit JRE varsayılan konuma yüklenir. Bazı deneylerden sonra, rJava'nın (sürüm 0.9-6 ) benim için çalışmasını sağlamak için sadece misterbee'nin önerilerinden birine ihtiyacım olduğunu buldum . Tüm yaptığım 64 bit java kurulumuma yol eklemekti:

C:\apps\Java\jre\bin\server\jvm.dll

yol ortam değişkenimin en üstüne (yolunuz muhtemelen farklı olacaktır) ve JAVA_HOME'umu user2161065 tarafından önerildiği gibi kaldırın . Bunu girişin hemen önüne koydum

C:\ProgramData\Oracle\Java\javapath

Oracle yükleyicisi yolun en üstüne ekler ve 32 bit JRE'ye bazı simgeleri gösterir. 64 bit jvm.dll girdisini ekleyerek, rJava neye ihtiyacı olduğunu bulabilir gibi görünüyor.


0

Bence bu bir güncelleme. Ben JDK yükleyene kadar Javac bulunamıyor ve javac windows komut isteminde çalışmıyor gibi rJava (Windows üzerinde) yükleyemedi . Aldığım mesaj şuydu

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

JDK JRE'yi içerir ve https://cran.r-project.org/web/packages/rJava/index.html rJava'nın mevcut sürümünü (0.9-7 yayınlandı 2015-Temmuz-29)

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

Yani buradasınız: rJava, javac'ı bulamadığı için yüklenmezse ve JRE yüklüyse, JDK'yı deneyin. Ayrıca, JAVA_HOMEJRE'yi değil de JDK'yı işaret ettiğinden emin olun .


Bunun @friendzis'in söylediklerinin tersi olduğunu fark ettim.
woodvi

rJava geliştirici, bu sorun biraz netlik getirebilir, pls
userJT

0

Windows 7 x64 makinemdeki gereksiz Java yazılımını kaldırarak sorunu çözdüm. Ben her şeyden önce Java uygulamaları kaldırmayı ve bu elde sonra taze bir Java sürümünü yükleyerek . (Daha sonra R 3.4.3 x86_64-w64-mingw32'yi Java yoluna işaret ettim , sadece bunun gerçek sorun olduğunu düşünmeme rağmen bahsetmek istiyorum.) Bugün sadece Java 8 Güncelleme 161 (64 bit) 8.0.1610.12 kaldı sonra. Bundan sonra install.packages("rJava"); library(rJava)mükemmel çalıştı.


0

Bu, Güncellemenin (Temmuz 2018) bir takibi. 64 bit Windows 10 kullanıyorum, ancak Rtools ile hem 32 hem de 64 bit için kaynaklardan r paketleri oluşturmak için ayarlanmışım. 64 bit jdk'im jdk-11.0.2. Yapabildiğim zaman RStudio'da her şeyi yaparım. Mart 2019 itibarıyla, rjava <= jdk11 ile test edilmiştir, bkz. Github sorunu # 157 .

  • @Jeroen tarafından jdks'i Güncelleme başına varsayılan konumlarına (Temmuz 2018) yükleyin.
  • R stüdyosunda JAVA_HOME'u 64 bit jdk'ye ayarlayın

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

  • İsteğe bağlı olarak çevresel değişkeninizi kontrol edin

Sys.getenv("JAVA_HOME")

  • Paketi github sayfası önerisi üzerine yükleyin

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

FYI, rstudio komut dosyası konsolu çift virgüllerden hoşlanmıyor ... ama işe yarıyor!


0
  1. Https://java.com/tr/download/windows-64bit.jsp adresinden Java'yı indirin64 bit pencereler için \ Yükle
  2. 64 bit pencereler için https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html adresinden Java geliştirme kitini indirin \ yükleyin
  3. Sonra masaüstündeki "Bu PC" simgesine sağ tıklayın \ Özellikler \ Gelişmiş sistem ayarları \ Gelişmiş \ Ortam Değişkenleri \ Sistem değişkenleri altında Yol \ Düzenle \ tıklayın \ Yeni \ Yolları kopyalayıp yapıştırın "C: \ Program Files \ Java \ jdk1 .8.0_201 \ bin ”ve“ C: \ Program Dosyaları \ Java \ jre1.8.0_201 \ bin ”(alıntısız) \ OK \ OK \ OK

Not: jdk1.8.0_201 ve jre1.8.0_201, Java geliştirme kiti ve Java sürümüne bağlı olarak değiştirilecektir

  1. Ortam Değişkenleri penceresinde Kullanıcı için Kullanıcı değişkenleri'ne gidin \ Yeni \ Değişken adını “JAVA_HOME” ve Değişken değerini “C: \ Program Dosyaları \ Java \ jdk1.8.0_201 \ bin” üzerine tıklayın \ OK düğmesine basın

Kurulumu kontrol etmek için CMD \ javac \ Type yazın ve Enter tuşuna basın java \ enter enter yazın. resim açıklamasını buraya girin

RStudio modunda

Sys.setenv(JAVA_HOME="C:\\Program Files\\Java\\jdk1.8.0_201")

Not: jdk1.8.0_201, Java geliştirme kitinin sürümüne bağlı olarak değişecektir

Şimdi rJava paketini sorunsuz bir şekilde kurabilir ve yükleyebilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.