programing

R과 함께 Win7 64비트에서 rJava 패키지 사용

mailnote 2023. 6. 20. 21:45
반응형

R과 함께 Win7 64비트에서 rJava 패키지 사용

를 설치하려고 rJavaWindows 7 64비트가 설치된 컴퓨터에서 사용할 수 있습니다.가 달릴 때.

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입니다.R version 2.13.1 (2011-07-08)RStudio를 사용하고 있습니다.

32비트 R을 사용하려고 하면 로드할 수 있습니다.rJava 그 ? 문제는 단지rJavaR 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)"

업데이트(2018년 7월):

는 CRAN 전의rJava 를 찾을 입니다.jvm.dll하지 PATH또는JAVA_HOME그러나 다음 사항에 유의하십시오.

  • 32비트 R에서 userJava를 사용하려면 Windows x86용 Java가 필요합니다.
  • 64비트 R에서 userJava를 사용하려면 Windows x64용 Java가 필요합니다.
  • 멀티아치(기본값)로 R 패키지를 빌드하거나 확인하려면 Windows x64용 JavaWindows x86용 Java모두 설치해야 합니다.Win64에서는 전자가 설치됩니다.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을 자동으로 픽업해야 합니다.전문가 전용: 소스에서 rJava를 구축하려면 다음이 필요합니다.--merge-multiarch플래그:

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

이전 답변:

(참고: 다른 답변/댓글에 있는 많은 사람들이 JAVA_HOME을 제거하라고 했으므로 고려해 보십시오.저는 아래의 모든 단계가 여전히 필요한지 알기 위해 최근에 이 문제를 다시 방문하지 않았습니다.

다음은 Windows 7 64비트에서 R + rJava를 사용하여 실행하는 방법에 대한 몇 가지 빠른 조언입니다.여러 가지 가능성이 있지만 대부분 치명적인 결함이 있습니다.다음은 저에게 도움이 되었습니다.

PATH에 jvm.dll 추가

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 "home" 디렉토리에서 찾아야 합니다.

안전을 위해 아키텍처가 일치하는지 확인합니다. 있는경우가경▁ifProgram Files이므로 R6464를 . 있는경우가경▁ifProgram Files (x86)때문에 R32를 합니다.

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에게 기본 라이브러리 디렉토리에 패키지를 설치하도록 지시합니다.어떤 이유로 인해 기본값이더라도 값을 비워 두면 작동하지 않습니다.

rJava를 작동시키려면 컴퓨터 구성에 따라 크게 달라집니다.

  1. R과 JDK/JRE 모두 동일한 32비트 또는 64비트 버전을 사용해야 합니다.이것의 혼합은 절대로 효과가 없을 것입니다(적어도 저에게는).
  2. 64비트 버전을 사용하는 경우 JAVA_HOME을 환경 변수로 설정하지 마십시오.이 변수가 설정되면 rJava는 어떤 이유로든(적어도 나에게는) 작동하지 않을 것입니다.JAVA_HOME이 설정된 R 내에서 쉽게 확인할 수 있습니다.

    Sys.getenv("JAVA_HOME")
    

JAVA_HOME 세트가 필요한 경우(예: 메이븐이나 다른 용도로 필요한 경우) rJava를 로드하기 전에 다음 코드를 사용하여 R-세션 내에서 비활성화할 수 있습니다.

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

이것은 대부분의 경우에 효과가 있을 것입니다.게다가 이것은 R과 함께 Win7 64비트에서 rJava 패키지를 사용하는 문제도 해결할 것입니다.저는 R:rJava 패키지 설치 실패에서 환경 변수 설정 해제 아이디어를 빌렸습니다.

저의 경우 JAVA_HOME을 설정하는 것이 트릭을 했습니다(여기에 주어진 다른 답변에서 설정을 해제하는 대신).Windows의 경우:

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

또는 R 내부:

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

하지만 (Java 0.9-4 이후) 가장 좋은 솔루션은 R 내에서 Windows JAVA_HOME 설정을 모두 재정의하는 것입니다.

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

마지막 질문의 답은 간단합니다.

> .Machine$sizeof.pointer
[1] 8

즉, R64를 실행하고 있습니다.32비트 R을 실행하면 4비트가 반환됩니다.64비트 OS를 실행한다고 해서 64비트 R을 실행하는 것은 아니며 오류 메시지를 보면 그렇지 않은 것 같습니다.

편집: 패키지에 이진 파일이 있으면 별도의 디렉토리에 있습니다.자세한 내용은 OS에 따라 달라집니다.는 LoadLibrary 오을음서dll에서 을 찾는 했습니다....rJava/libs/x64/...MacOS 스시서에...rJava/libs/...폴더는 i386, ppc, x86_64의 세 개의 하위 디렉터리를 가지고 있습니다. (ppc 파일은 분명히 쓸모없는 짐입니다.)

괴사해서 죄송합니다., 같은 문제가 있다는 것을 알게 .rJava을 기대합니다.JAVA_HOMEJRE를 가리킵니다.설치되어 JDK가 설치되어 있을 입니다.JAVA_HOMEJDK에 대한 점입니다.빠른 해결책:

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

저는 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%"

이 문제가 발생했을 때 설치된 Java 패키지를 확인하는 데 문제가 발생했습니다. 이전 답변이 제대로 작동하지 않았기 때문입니다.이를 해결하기 위해 다음을 입력했습니다.

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

그런 다음 탭을 누르면 제안된 두 개의 디렉토리가 "jre1.8.0_31/" 및 "jre7/"입니다.

Jre7은 제 문제를 해결하지 못했지만, jre1.8.0_31/은 해결했습니다.최종 응답이 실행 중(라이브러리(rJava) 이전):

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

64비트 Windows 8.1을 사용하고 있습니다. 다른 사용자에게 도움이 되길 바랍니다.

업데이트:

버전을 확인하여 X가 무엇이어야 하는지 결정합니다(이 게시 이후 내 버전은 여러 번 변경되었습니다).

Sys.setenv(JAVA_HOME="C:/Program Files/Java/jre1.8.0_x/")
  1. https://java.com/en/download/windows-64bit.jsp 에서 64비트 Windows용 Java 다운로드\설치
  2. https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 에서 64비트 Windows용 Java 개발 키트 다운로드\설치
  3. 그런 다음 바탕 화면\속성에서 "이 PC" 아이콘을 마우스 오른쪽 단추로 클릭합니다.\고급 시스템 설정\고급\환경 변수\시스템 변수에서 경로\편집\클릭\새로 만들기\복사하여 경로 "C:" 붙여넣기를 클릭합니다.\Program Files\Java\jdk1.8.0_201\bin" 및 "C:\Program Files\Java\jre1.8.0_201\bin"(인용문 없음) \OK\OK\OK

참고: jdk1.8.0_201 및 jre1.8.0_201은 Java 개발 키트 및 Java 버전에 따라 변경됩니다.

  1. 환경 변수 창에서 사용자의 사용자 변수로 이동합니다.\새로 만들기\를 클릭합니다.변수 이름을 "JAVA_HOME"로, 변수 값을 "C:\Program Files\Java\jdk1.8.0_201\bin”\확인을 누릅니다.

설치를 확인하려면 CMD\Type javac\Enter 및 Type java\Enter를 엽니다.

R 스튜디오 실행 중

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

참고: jdk1.8.0_201은 Java 개발 키트 버전에 따라 변경됩니다.

이제 rJava 패키지를 문제없이 설치하고 로드할 수 있습니다.

브라우저에 32비트 JRE를 사용할 수 있어야 하지만 R 및 rJava에는 64비트 JRE를 사용할 수 있어야 합니다.32비트 JRE는 기본 위치에 설치됩니다.몇 가지 실험을 한 후, 저는 rJava(0.9-6 버전)가 저를 위해 일하도록 하기 위해 미스터비의 제안 중 하나만 있으면 된다는 것을 알게 되었습니다.64비트 Java 설치에 경로를 추가한 것이 전부입니다.

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

사용자 2161065가 제안한 대로 경로 환경 변수의 맨 위에 있는 JAVA_HOME을 제거합니다.이것을 입구 바로 앞에 놓았습니다.

C:\ProgramData\Oracle\Java\javapath

Oracle 설치 관리자가 경로의 맨 위에 삽입하고 32비트 JRE에 대한 일부 심볼 링크를 가리킵니다.64비트 jvm.dll에 항목을 추가하면 rJava가 필요한 것을 찾을 수 있을 것 같습니다.

제 생각에 이것은 업데이트된 것 같아요.JDK를 설치하기 전까지 (Windows에서) rJava를 설치할 수 없었습니다. Java를 찾을 수 없고 java가 Windows 명령 프롬프트에서 작동하지 않기 때문입니다.제가 받은 메시지는

'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의 현재 버전(0.9-7 발행 2015년 7월 29일)

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

수 하지 않고rJava javac을 또한, 다음 사항을 확인합니다.JAVA_HOMEJRE가 아닌 JDK를 가리킵니다.

Windows 7 x 64 컴퓨터에서 중복된 Java 소프트웨어제거하여 이 문제를 해결했습니다.저는 먼저 모든 Java 애플리케이션을 제거한 다음 새로운 Java 버전을 설치함으로써 이를 달성했습니다. (나중에 R3.4.3 x86_64-w64-mingw32를 Java 경로로 가리켰는데, 이것은 실제 문제가 아니라고 생각합니다.)오늘은 Java 8 Update 161(64비트) 8.0.1610.12만 남아 있었습니다.이 일이 있은 후에.install.packages("rJava"); library(rJava)완벽하게 작동했습니다.

이것은 업데이트(2018년 7월)의 후속 조치입니다.나는 64비트 Windows 10에 있지만 Rtools가 있는 32비트와 64비트 모두에 대해 소스에서 빌드 패키지로 설정되어 있습니다.제 64비트 jdk는 jdk-11.0.2입니다.할 수 있을 때는 R스튜디오에서 모든 것을 합니다.2019년 3월 기준으로 rjava는 <=jdk11로 테스트됩니다. github issue #dll 참조.

  • @Jeroen의 업데이트(2018년 7월)에 따라 기본 위치에 jdks를 설치합니다.
  • 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 스크립팅 콘솔은 이중 쉼표를 좋아하지 않습니다...하지만 효과가 있습니다!

너무 많은 대답들이 있었지만, 에게는 아무 것도 효과가 없었습니다. 매우 실망스럽고 좌절스러웠습니다.
때때로 저는 이 문제에 부딪혀서 구글에서 시간을 낭비할 것입니다.
그래서 여기 제게 도움이 된 것이 있습니다. 저는 지금 하고 있습니다.Windows 10모든 것이 완전히 업데이트되었습니다.

  1. 는 다받으왔다습니러운을 다운로드 받기 .JDK그리고.JRE 8u301이 글의 최신판
    다운로드 링크Oracle 파일 Java 파일
    저는 계정을 만들거나 계정에 로그인해야 했습니다. 시간이 전혀 걸리지 않고 무료이며 걱정할 필요가 없습니다.
  2. 한 후 JDK를 하여 JRE를 했습니다.exe이전 단계에서 방금 다운로드했습니다.
  3. Rstudio(또는 안에)R), 이란Sys.setenv(JAVA_HOME='C:\\Program Files\\Java\\jdk1.8.0_301').
  4. 중입니다.install.packages("rJava")원하는 것으로 이끌었습니다.DONE (rJava)(물론, 나는 당신도 가지고 있다고 생각합니다.Rtools설치, 말할 것도 없이...)

꽤 간단하고 쉬운 임호.올바른 단계를 밟으면 3분이 걸렸습니다.

언급URL : https://stackoverflow.com/questions/7019912/using-the-rjava-package-on-win7-64-bit-with-r

반응형