ปัญหาโหลด rJava ไม่ได้ (Windows)

มีหลายคนถามมาว่าอยากจะใช้ package ใน R ที่มันใช้ Java ในเครื่องที่เป็น Windowsแต่มีปัญหาว่าโหลด rJava จากคำสั่ง library(rJava) ไม่ได้ โดยมันขึ้นว่า

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

วิธีแก้ที่ผมแนะนำไปนอกเหนือจากที่ต้องลง JDK ก็มีการเซ็ตpath ให้กับตัวแปรของระบบอย่าง JAVA_HOME ซึ่งเป็นไปได้ว่าErrorที่เกิดขึ้นนั้นเพราะยังไม่มีการเซ็ตไว้หรือไม่ก็ R มันหาไม่เจอ วิธีการเซ็ตก็เพียงพิมพ์

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

ซึ่งในกรณีนี้ JDK มันอยู่ที่ “C:\\Program Files\\Java\\jdk1.8.0_131” หรือจะเซ็ตไปที่ JRE ก็ได้ครับ จากนั้นก็โหลด rJava ใหม่ด้วยคำสั่ง library

ข้อสังเกต ต้องดูด้วยนะครับว่ากำลังใช้ R ในแบบ 32 bits หรือ 64 bits ถ้าเป็น 64 bits เจ้า PATH ของ Java จะอยู่ที่ Program Files ครับ ส่วน 32 bits จะอยู่ที่ Program Files (x86) ครับ

One thought on “ปัญหาโหลด rJava ไม่ได้ (Windows)”

Leave a Reply