错误描述:
> 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运行环境出了问题。
解决方法:
- 是否已安装JRE;如果没有安装,可以去官网下载新版本JRE(http://www.oracle.com/technetwork/java/javase/downloads/index.html),个人比较推荐直接下载JDK,JDK与JRE区别见下文,JDK中自带JRE,不用新下载JRE。注意,JRE版本需要与R版本一致,即R安装的64位的,JRE也需要是64位的。
- 如果安装过后仍然出现此错误,可能是因为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