$JAVA_HOME环境变量在Mac OS X中设置的问题

系统版本:Mac OS X 10.9.1

~/.profile  中增加环境变量JAVA_HOME 设置:

验证变量配置:

显示已经配置成功了,然后执行Hadoop的启动脚本:start-dfs.sh ,启动正常后查看相关进程

ps -ef|grep hadoop,发现启动的JDK不是$JAVA_HOME 设置的而是其他版本:

  501  7272     1   0  3:56下午 ??         0:05.28    /Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home/bin/java -Dproc_namenode -Xmx1000m -Djava.net.preferIPv4Stack=true -Djava.security.krb5.realm=OX.AC.UK -Djava.security.krb5.kdc=kdc0.ox.ac.uk:kdc1.ox.ac.uk -Dhadoop.log.dir=/usr/local/share/hadoop-2.2.0/logs -Dhadoop.log.file=hadoop.log -Dhadoop.home.dir=/usr/local/share/hadoop-2.2.0 -Dhadoop.id.str=micmiu -Dhadoop.root.logger=INFO,console 。。。

感觉非常奇怪,后来搜索了下,有人解释说是 Mac OSX新版本(10.5+)之后,已经建议$JAVA_HOME的设置用 /usr/libexec/java_home,因为java_home 可以根据你的需要返回指定的版本。

1、默认是查看当前版本:

2、-V (大写)参数可以列出所有的版本:

3、-a 参数可以根据CPU的类型过滤

4、-d 参数可以过滤 32位、64位

5、-v (小写)参数可以过滤版本:

以后就可以在~/.profile  中按照如下方法自定义$JAVA_HOME:

但是如何让Hadoop以~/.profile 指定的JAVA_HOME运行还是不知道,查看<HADOOP_HOME>/libexec/hadoop-config.sh 脚本中有关JAVA_HOME的逻辑代码:

应该是么有获取到$JAVA_HOME的值,然后执行if判断语句里面的逻辑了,目前估计只能在hadoop-env.sh中直接修改JAVA_HOME了。

—————–  EOF @Michael Sun —————–

原创文章,转载请注明: 转载自micmiu – 软件开发+生活点滴[ http://www.micmiu.com/ ]

本文链接地址: http://www.micmiu.com/lang/java/set-javahome-on-mac-os-x/

发表评论?

0 条评论。

发表评论


注意 - 你可以用以下 HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">