在OS X中修改PATH等环境变量的正确方法是什么?
我在Google上看了一下,发现要编辑的三个不同文件:
我甚至没有这些文件,我很确定.tcshrc是错误的,因为OS X现在使用bash.这些变量,尤其是PATH,在哪里定义?
我正在运行OS X v10.5(Leopard).
我刚刚完成了一个干净的安装OS X Mavericks,我已经下载了Eclipse Kepler,但如果我执行它,给我这个消息:

请我安装Runtime Java SE 6; 我已安装Java 7,如果我按下Install该对话框,下载并安装它,再次打开Eclipse,则会再次出现该对话框.
我怎么解决它?
我可以加载rJava和xlsxjars包,但是当我执行库(xlsx)时,我得到了"无法加载JVM".以下是我的详细信息.
OS版本:
$ sw_vers
ProductName: Mac OS X
ProductVersion: 10.11
BuildVersion: 15A284
Run Code Online (Sandbox Code Playgroud)
Java版本:
$ java -version
java version "1.8.0_65"
Java(TM) SE Runtime Environment (build 1.8.0_65-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.65-b01, mixed mode)
Run Code Online (Sandbox Code Playgroud)
Java路径:
$ which java
/usr/bin/java
Run Code Online (Sandbox Code Playgroud)
Java主页:
$ /usr/libexec/java_home
/Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home
Run Code Online (Sandbox Code Playgroud)
R版本:
$ R --version
R version 3.2.3 (2015-12-10) -- "Wooden Christmas-Tree"
Copyright (C) 2015 The R Foundation for Statistical Computing
Platform: x86_64-apple-darwin13.4.0 (64-bit)
Run Code Online (Sandbox Code Playgroud)
我如何推出R:
$ LD_LIBRARY_PATH=$(/usr/libexec/java_home)/jre/lib/server: open -a RStudio
Run Code Online (Sandbox Code Playgroud)
成功加载rJava和xlsxjars包:
> library(rJava)
> library(xlsxjars)
Run Code Online (Sandbox Code Playgroud)
尝试加载xlsx包失败:
> library(xlsx) …Run Code Online (Sandbox Code Playgroud) 我昨天升级到了OSX Yosemite.当我运行library(xlsx)时RStudio,程序崩溃,我收到消息:"要打开'RStudio',您需要安装旧的Java SE 6运行时." 我得到有关打开相同的结果和消息R当我运行library(xlsx)在R.
这是我的详细信息:
Mac Yosemite, Version 10.10.2
R version 3.1.2 (2014-10-31)
Platform: x86_64-apple-darwin13.4.0 (64-bit)
Run Code Online (Sandbox Code Playgroud)
我有Java版本8更新31.我运行java -version并收到此消息:"没有Java运行时,请求安装." 所以我安装了Java SE Development Kit 8u31.现在:
java -version
java version "1.8.0_31"
Java(TM) SE Runtime Environment (build 1.8.0_31-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.31-b07, mixed mode)
Run Code Online (Sandbox Code Playgroud)
这没有做到这一点,因为运行library(xlsx)仍然会崩溃程序并发出警告.我是否需要以某种方式回滚到Java SE 6运行时,还是有办法使用我安装的最新版本?
这个SO帖子似乎是相关的,但我不清楚安装Java 6的安装解决方案.答案链接到似乎过时的苹果支持页面.
我不熟悉Java,所以我可以使用一些建议.
Rstudio的编织按钮无法编写包含rJava包的rmarkdown(Rmd)文件.但是,如果我使用rmarkdown::render(),相同的Rmd文件将呈现为html而不会出现问题.
我可以使用以下代码重现错误:
test.Rmd的内容:
---
title: "test"
output: html_document
---
```{r}
library(rJava)
```
Run Code Online (Sandbox Code Playgroud)
单击编织按钮按钮将返回:
processing file: test.Rmd
Error : .onLoad failed in loadNamespace() for 'rJava', details:
call: dyn.load(file, DLLpath = DLLpath, ...)
error: unable to load shared object '/Library/Frameworks/R.framework/Versions/3.3/Resources/library/rJava/libs/rJava.so':
dlopen(/Library/Frameworks/R.framework/Versions/3.3/Resources/library/rJava/libs/rJava.so, 6): Library not loaded: @rpath/libjvm.dylib
Referenced from: /Library/Frameworks/R.framework/Versions/3.3/Resources/library/rJava/libs/rJava.so
Reason: image not found
Quitting from lines 7-8 (test.Rmd)
Error: package or namespace load failed for 'rJava'
Execution halted
Run Code Online (Sandbox Code Playgroud)
并且rmarkdown::render("test.Rmd")工作正常.此外,library(rJava)正常运行(非编织)也可以正常工作(在RStudio内).
在macOS Sierra 10.12中使用RStudio版本1.0.136,knitr 1.15.1,rmarkdown 1.3,rJava 0.9-8,R 3.3.2. …
我在rJava上关注本教程:http://cran.r-project.org/web/packages/helloJavaWorld/vignettes/helloJavaWorld.pdf
我已经制作了教程中指定的所有文件并安装了helloJavaWorld包,但是一旦我运行了helloJavaWorld()函数,就会抱怨:
> helloJavaWorld()
Error in .jnew("HelloJavaWorld") :
java.lang.UnsupportedClassVersionError: HelloJavaWorld : Unsupported major.minor version 52.0
Run Code Online (Sandbox Code Playgroud)
所以我试着检查rJava正在使用的java版本:
.jinit()
jvm = .jnew("java.lang.System")
jvm.props = jvm$getProperties()$toString()
jvm.props <- strsplit(gsub("\\{(.*)}", "\\1", jvm.props), ", ")[[1]]
jvm.props
[1] "java.runtime.name=Java(TM) SE Runtime Environment"
[2] "sun.boot.library.path=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Libraries"
[3] "java.vm.version=20.65-b04-466.1"
[4] "awt.nativeDoubleBuffering=true"
[5] "gopherProxySet=false"
[6] "mrj.build=11M4716"
[7] "java.vm.vendor=Apple Inc."
[8] "java.vendor.url=http://www.apple.com/"
[9] "path.separator=:"
[10] "java.vm.name=Java HotSpot(TM) 64-Bit Server VM"
[11] "file.encoding.pkg=sun.io"
[12] "user.country=US"
[13] "sun.os.patch.level=unknown"
[14] "java.vm.specification.name=Java Virtual Machine Specification"
[15] "user.dir=/private/tmp"
[16] "java.runtime.version=1.6.0_65-b14-466.1-11M4716"
[17] "java.awt.graphicsenv=apple.awt.CGraphicsEnvironment"
[18] "java.endorsed.dirs=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/endorsed" …Run Code Online (Sandbox Code Playgroud) 我一直在努力解决这个问题.当我从R安装rJava时,它需要Java 1.6而不是1.8.我正在使用MAC OS 10.8.5,这些是我已经完成的步骤.
我安装了R.
我的机器上有Java 1.6和1.8.
我从终端使用重新配置R: sudo R CMD javareconf -n.
这是输出的样子:
Java interpreter : /usr/bin/java Java version : 1.8.0_25 Java home path : /Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/jre Java compiler : /usr/bin/javac Java headers gen.: /usr/bin/javah Java archive tool: /usr/bin/jar Non-system Java on OS X
试图编译和链接JNI程序
detected JNI cpp flags : -I$(JAVA_HOME)/../include -I$(JAVA_HOME)/../include/darwin detected JNI linker flags : -L$(JAVA_HOME)/lib/server -ljvm gcc -arch x86_64 -std=gnu99 -I/Library/Frameworks/R.framework/Resources/include -DNDEBUG -I/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/jre/../include -I/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/jre/../include/darwin -I/usr/local/include -fPIC -mtune=core2 -g -O2 -c conftest.c -o conftest.o gcc -arch x86_64 …
我在macOS sierra(10.12.5)上运行R(版本3.4.0),我正在尝试使用需要使用rJava库的xlsx库.
当我尝试library(rJava)在R控制台中加载rJava时(如果在RStudio或终端中没有区别),我收到以下错误消息,我无法理解:
Fehler: package or namespace load failed for ‘rJava’:
.onLoad in loadNamespace() für 'rJava' fehlgeschlagen, Details:
Aufruf: dyn.load(file, DLLpath = DLLpath, ...)
Fehler: kann shared object '/Library/Frameworks/R.framework/Versions/3.4/Resources/library/rJava/libs/rJava.so' nicht laden:
dlopen(/Library/Frameworks/R.framework/Versions/3.4/Resources/library/rJava/libs/rJava.so, 6): Library not loaded: @rpath/libjvm.dylib
Referenced from: /Library/Frameworks/R.framework/Versions/3.4/Resources/library/rJava/libs/rJava.so
Reason: image not found
Run Code Online (Sandbox Code Playgroud)
谷歌搜索问题我发现一些帖子有点类似(但每次稍微不同的问题),这个SO问题是其中最有希望的.
由于提议的步骤需要适应我的情况,而且我是一个新手,我无法实现它们.我能做什么?
附加信息:
shell命令java -version返回:
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
Run Code Online (Sandbox Code Playgroud)
并且shell命令R CMD javareconf返回:
Java interpreter …Run Code Online (Sandbox Code Playgroud) 请参阅下面的解决方案,以防此问题在将来帮助其他人.
正如标题所描述的那样,它失败了.我收到的错误,当我install.packages('rJava')从R内部尝试时(有一些先前的好检查):
checking whether JNI programs can be compiled... yes
checking JNI data types... configure: error: One or more JNI types differ from the corresponding native type. You may need to use non-standard compiler flags or a different compiler in order to fix this.
ERROR: configuration failed for package ‘rJava’
* removing ‘/usr/local/lib/R/3.2/site-library/rJava’
Run Code Online (Sandbox Code Playgroud)
我检查并尝试了以下决议,其中没有一个对我有用:
export JAVA_HOME但是在这种情况下,我没有做LD_LIBRARY_PATH,因为它似乎与Mac无关.
没有这样的运气,任何这些尝试.
我曾经以前有rJava(和RJDBC)正确安装.
[编辑:我后来发现,实际问题是升级到OS X …
我在Mac OS Sierra上.
我已经尝试过 - 在OS X Mavericks上安装RODBC/ROracle软件包,但它没有帮助.
这就是我做的:
它给了我以下错误:
* installing to library ‘/Library/Frameworks/R.framework/Versions/3.3/Resources/library’
* installing *source* package ‘ROracle’ ...
** package ‘ROracle’ successfully unpacked and MD5 sums checked
configure: creating ./config.status
config.status: creating src/Makevars
** libs
clang -I/Library/Frameworks/R.framework/Resources/include -DNDEBUG -I/Users/dhananjaygoel/instantclient_12_1/sdk/include -I/usr/local/include -I/usr/local/include/freetype2 -I/opt/X11/include -fPIC -Wall -mtune=core2 -g -O2 -I/opt/local/include -c rodbi.c -o rodbi.o
rodbi.c:2432:53: warning: …Run Code Online (Sandbox Code Playgroud)