java vm mac_mac下java环境变量配置

http://blog.csdn.net/shallowgrave/article/details/39367119

配置Java环境,添加环境变量这一步:

export JAVA_HOME=/usr/java/latest

export CLASSPATH=.:$JAVA_HOME

export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/binexport CLASSPATH=.:$JAVA_HOME/lib:$CLASSPATH

之前是linux环境下配置的,现在换到另一个类Unix系统MacOS下来,想来也是类似的。只要找到JDK的真实安装路径即可。

刚好之前在配置maven依赖的JDK依赖有点类似经验。

shuchen-2:bin seishuchen$ which java

/usr/bin/java

shuchen-2:bin seishuchen$ ls -la /usr/bin/java

lrwxr-xr-x  1 root  wheel  74 Mar  4  2014 /usr/bin/java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java

shuchen-2:bin seishuchen$

很快找到了当前JDK的真实路径。查看路径名发现,有Versions字段还有Current字段,作为一个程序猿,这点敏感还是有的。

马上切换到Versions目录下面,查看:

shuchen-2:Versions seishuchen$ cd /System/Library/Frameworks/JavaVM.framework/Versions

shuchen-2:Versions seishuchen$ ls -al

total 72

drwxr-xr-x  12 root  wheel  408 Jul 15 17:13 .

drwxr-xr-x  12 root  wheel  408 Apr 11 15:10 ..

lrwxr-xr-x   1 root  wheel   10 Mar  4  2014 1.4 -> CurrentJDK

lrwxr-xr-x   1 root  wheel   10 Mar  4  2014 1.4.2 -> CurrentJDK

lrwxr-xr-x   1 root  wheel   10 Mar  4  2014 1.5 -> CurrentJDK

lrwxr-xr-x   1 root  wheel   10 Mar  4  2014 1.5.0 -> CurrentJDK

lrwxr-xr-x   1 root  wheel   10 Mar  4  2014 1.6 -> CurrentJDK

lrwxr-xr-x   1 root  wheel   10 Mar  4  2014 1.6.0 -> CurrentJDK

drwxr-xr-x   8 root  wheel  272 Mar  4  2014 A

lrwxr-xr-x   1 root  wheel    1 Mar  4  2014 Current -> A

lrwxr-xr-x   1 root  wheel   58 Jul 15 17:12 CurrentJDK -> /Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents

lrwxr-xr-x   1 root  wheel   59 Mar  4  2014 CurrentJDK_BAK -> /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents

结果很明显,有木有,原来都指向了/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents

那么就切换过去瞅瞅呗。

shuchen-2:Versions seishuchen$ cd /Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents

shuchen-2:Contents seishuchen$ ls

Home       Info.plist MacOS

shuchen-2:Contents seishuchen$ cd Home/

shuchen-2:Home seishuchen$ ls

COPYRIGHT                          bin                                man

LICENSE                            db                                 release

README.html                        include                            src.zip

THIRDPARTYLICENSEREADME-JAVAFX.txt jre

THIRDPARTYLICENSEREADME.txt        lib

shuchen-2:Home seishuchen$

看到了久违的JDK安装目录了不是。好了,我们的JAVA_HOME即是/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home。

过程看着挺复杂的样子,当然这个是对于一个最原始的方法,如果你熟悉Mac的话,其实有个获得JAVA_HOME的自带小工具,直接在命令行

输入/usr/libexec/java_home来获得。

shuchen-2:Home seishuchen$ /usr/libexec/java_home

/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home

shuchen-2:Home seishuchen$

那么接下来只要修改配置文件使之生效即可。根据你的需求,可以选择修改不同的环境变量配置文件。

而笔者只是修改当前用户的即可。只要在~/.profile(mac下也可以编辑~/.bashrc,但~/.bash_profile就不确定了,感兴趣的可以自己事先)

加入:

JAVA_HOME=`/usr/libexec/java_home`

export JAVA_HOME

export CLASSPATH=.:$JAVA_HOME

export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin

export CLASSPATH=.:$JAVA_HOME/lib:$CLASSPATH

接着source ~/.profile ,好了,收工。

执行Hbase启动脚本,用jps查看一下情况,发现一切是那么完美,哦哈哈

1. Mac下当你在【终端】输入java -version时,是执行的哪里的java呢,which java命令可以看到,就是【/usr/bin/java】

2. 【/usr/bin/java】只是个替身,实际指向【/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java】,如图,ls -l java就可以看到

44012725cd2762fc584be0dcabe88490.png

3. 第2点提到的【/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java】其实也不是真正的java,因为Current文件夹是替身,它指向了同目录下的某个版本,例如A文件夹,如下图:(这样的好处是装了多个版本java后,可以方便地调整Current指向,使得不同版本java变成系统默认的,通常在【实用工具】->【Java偏好设置】里可以调整)

303fd0002acb114b29fa5abc831bc428.png

4.第3点提到的A文件夹是安装java后系统生成的。它里面的Commands文件夹下有个java可执行文件,这个java其实调用了真真正正的java原身–>【/Library/Java/JavaVirtualMachines/1.6.0_37-b06-434.jdk/Contents/Home/bin/java】(你试试把这个java改个名,再在终端里输入java就明白了哦)

PS:这里的版本号(1.6.0_37-b06-434)不同的机器可能不一样,也可能会存在多个版本,这就看你机器上装了多少个版本的java了

5. 归根到底,【/Library/Java/JavaVirtualMachines/1.6.0_37-b06-434.jdk/Contents/Home/bin/java】才是真正的工作者啊

表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
相关推荐
<p> 需要学习Windows系统YOLOv4的同学请前往《Windows版YOLOv4目标检测实战:原理与源码解析》, </p> <p> 课程链接 https://edu.csdn.net/course/detail/29865 </p> <h3> <span style="color:#3598db;">【为什么要学习这门课】</span> </h3> <p> <span>Linux</span>创始人<span>Linus Torvalds</span>有一句名言:<span>Talk is cheap. Show me the code. </span><strong><span style="color:#ba372a;">冗谈不够,放码过来!</span></strong> </p> <p> <span> </span>代码阅读是从基础到提高的必由之路。尤其对深度学习,许多框架隐藏了神经网络底层的实现,只能在上层调包使用,对其内部原理很难认识清晰,不利于进一步优化和创新。 </p> <p> YOLOv4是最近推出的基于深度学习的端到端实时目标检测方法。 </p> <p> YOLOv4的实现darknet是使用C语言开发的轻型开源深度学习框架,依赖少,可移植性好,可以作为很好的代码阅读案例,让我们深入探究其实现原理。 </p> <h3> <span style="color:#3598db;">【课程内容与收获】</span> </h3> <p> 本课程将解析YOLOv4的实现原理和源码,具体内容包括: </p> <p> - YOLOv4目标检测原理<br /> - 神经网络及darknet的C语言实现,尤其是反向传播的梯度求解和误差计算<br /> - 代码阅读工具及方法<br /> - 深度学习计算的利器:BLAS和GEMM<br /> - GPU的CUDA编程方法及在darknet的应用<br /> - YOLOv4的程序流程 </p> <p> - YOLOv4各层及关键技术的源码解析 </p> <p> 本课程将提供注释后的darknet的源码程序文件。 </p> <h3> <strong><span style="color:#3598db;">【相关课程】</span></strong> </h3> <p> 除本课程《YOLOv4目标检测:原理与源码解析》外,本人推出了有关YOLOv4目标检测的系列课程,包括: </p> <p> 《YOLOv4目标检测实战:训练自己的数据集》 </p> <p> 《YOLOv4-tiny目标检测实战:训练自己的数据集》 </p> <p> 《YOLOv4目标检测实战:人脸口罩佩戴检测》<br /> 《YOLOv4目标检测实战:中国交通标志识别》 </p> <p> 建议先学习一门YOLOv4实战课程,对YOLOv4的使用方法了解以后再学习本课程。 </p> <h3> <span style="color:#3598db;">【YOLOv4网络模型架构图】</span> </h3> <p> 下图由白勇老师绘制 </p> <p> <img alt="" src="https://img-bss.csdnimg.cn/202006291526195469.jpg" /> </p> <p>   </p> <p> <img alt="" src="https://img-bss.csdnimg.cn/202007011518185782.jpg" /> </p>
©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页