首页 > 代码库 > 关于library(rJava)载入以及环境变量JAVA_HOME、Path、CLASSPATH各自意义

关于library(rJava)载入以及环境变量JAVA_HOME、Path、CLASSPATH各自意义

 错误描述:

> library(xlsx)
  载入需要的程辑包:rJava
  Error : loadNamespace()里算‘rJava‘时.onLoad失败了,详细内容:
  调用: inDL(x, as.logical(local), as.logical(now), ...)
  错误: unable to load shared object ‘C:/Pogram Files/R/R-3.0.2/library/rJava/libs/x64/rJava.dll‘:
        LoadLibrary failure:  找不到指定的模块。
  Error: 无法载入程辑包‘rJava’
 
错误分析:
rJava调用需要java运行环境(即JRE),如果“无法载入程辑包‘rJava’”就意味着没有java运行环境或java运行环境出了问题。
 
解决方法:
  1. 是否已安装JRE;如果没有安装,可以去官网下载新版本JRE(http://www.oracle.com/technetwork/java/javase/downloads/index.html),个人比较推荐直接下载JDK,JDK与JRE区别见下文,JDK中自带JRE,不用新下载JRE。注意,JRE版本需要与R版本一致,即R安装的64位的,JRE也需要是64位的。
  2. 如果安装过后仍然出现此错误,可能是因为JAVA环境变量配置出错。环境变量配置可参考下文。
 

Development Files and Directories

技术分享

JRE与JDK各自的作用:

安装了JRE,即java运行环境。你可以运行制作好的java程序。也就是后缀名为“class”的程序。例如 AppJava.class。
安装了JDK,则可以编译java源代码,生成java程序,然后运行之。例如编译 AppJava.java,生成 AppJava.class,然后用JRE运行。


以下是我配置的环境变量:

JAVA_HOME:   D:\Android\jdk1.8.0_25

一般用来表示JDK的安装目录, 这个变量也可以不用设置,但是设置的好处在于当我们需要改变某个jdk时,只需要改JAVA_HOME的值就可以了。

    

Path: .;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin\server;

系统变量Path告诉操作系统可执行文件(*.exe、*.bat等)所在的路径,当OS(操作系统)发现某个*.exe时,windows默认从当前目录开始查找这个命令,若查不到,OS就会到Path所设定的路径中去寻找该命令,然后执行。
系统默认的系统变量为:%SystemRoot%;%SystemRoot%/system32;%SystemRoot%/System32/Wbem
就是说处于上面3个目录(多个变量用分号隔开)中的*.exe文件,可以在任意地方被执行(在 运行 窗口能直接执行的命令,像cmd等,基本都在上面的3个目录里面),所以他们可以直接运行。

     

CLASSPATH: .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;

CLASSPATH是专门针对java的,它相当于windows的path;path是针对整个windows的。
CLASSPATH告诉java虚拟机(jvm)要使用或执行的*.class文件放在什么地方。
用jvm开运行程序需要设定classpath,jvm默认的查找class文件的路径,即当前路径。
在windows中 classpath 大小写没有关系,其他的环境变量名称也一样。

 

参考文档:http://blog.csdn.net/luinstein/article/details/5019806

关于library(rJava)载入以及环境变量JAVA_HOME、Path、CLASSPATH各自意义