JAVA_HOME

 

至从接触java我们最先了解的不是java,而是环境变量。

最初我们认为环境变量很easy,按照老师教的设置

Path=java安装路径/bin;

Classpath=jre安装路径/lib/tools.jar

设置完,在cmd下运行 java –version

出现了java的版本信息就ok了

 

还有的老师会负责任一些,告诉童鞋们要设置JAVA_HOME,于是乎我们的环境变量变成了这样

HOME_JAVA=jdk安装目录

Path = %JAVA_HOME%/bin

Classpath=jre安装路径/lib/tools.jar

我在最初学设置环境变量的时候,认为设置JAVA_HOME那就是脱裤子放屁~!

好好的为什么要设置JAVA_HOME啊?直接把jdk的目录设置在path里不就完了嘛~!

现在想象我当初为什么会有这样的想法?

因为我根本就没有真正的认识环境变量,就好像一个凡人,拿着一把类似斧子的神奇武器,因为这个凡人并不知道这把类似斧子的东西的神奇,于是只能当把斧子去上山砍柴。。。

 

现在想想,发生这种情况不知道是老师不知其所以言的悲哀,还是学生不懂专研的悲哀!

 

回想下当初学java老师不告诉你环境变量的重要性也并不奇怪,试想,一个根本就没有真正体验过大型项目研发、实施工作只是在书本上对java熟悉的人怎么能知道环境变量的重要性呢?

 

参加工作已经快两年了,大大小小遇到环境变量的问题很多,而且特别的蹩手,不是因为环境变量问题难解决,而是环境变量问题不好发现。

 

本来想总结下今天遇到的问题,但是写写就想多了,有时间我会把环境变量总结下的。

今天遇到的问题是在MyEclipse上执行ant出现错误。C:/Program Files/Java/jdk1.5.0

错误如下:

BUILD FAILED

E:/MyEclipseworkspace/TestAnt/build.xml:8: Unable to find a javac compiler;

com.sun.tools.javac.Main is not on the classpath.

Perhaps JAVA_HOME does not point to the JDK.

It is currently set to "E:/MyEclipse/jre"

 

Total time: 250 milliseconds

但是在运行àcmd

cd 工程目录

ant

执行成功

明显是环境变量的问题,但是我的环境变量早已经设置完成了啊,不然在cmd模式下也不会执行成功的。

解决办法:

设置JAVA_HOME=JKD安装目录

重启MyEclipse

 

为什么设置了JAVA_HOME就好用了呢?

因为在一些依赖java的插件中,如tomcat,ant等会默认的去寻找JAVA_HOME这个变量以此来寻找java的安装目录,尽管你在path中设置了jkd的路径,但是没有设置JAVA_HOME一些插件根本就不识别。

虽然我找到了原因,但我还是很纳闷,为什么之前我没有设置JAVA_HOME但是MyEclipse下Tomcat却好用呢?

因为你在MyEclipse上使用tomcat前都会有一个设置

Window—>preferences-->MyEclipseàapplication servers—tomcat

在这个选项下,MyEclipse会提示你指定jkd的路径,所以当你在环境变量中没有设置JAVA_HOME的情况下,tomcat也是可以正常运行的。

 

总结:JAVA_HOME不仅仅充当一个路径变量的角色,他也是某些java插件寻找jdk的向导,没有此向导,那些插件无法执行

 

 

很多人在初学Java的时候经常会被书中介绍的一堆环境变量的设置搞得头昏脑胀,很多书中都会在初装JDK的时候让他大家设置JAVA_HOME环境变量,在开发程序的时候设置CLASSPATH环境变量,而很多人并不理解这两个环境变量的作用,我们来分别进行详细的阐述。
    首先是JAVA_HOME环境变量,我们先来掌握这个环境变量的设置内容,JAVA_HOME这个环境变量的设置内容是JDK的安装目录,比如说您的JDK安装在d:\jdk1.6.0这个目录下,请您查看一下这个目录下是不是有一个子目录bin,bin目录中是不是有java.exe这个文件,如果是,那么您的JAVA_HOME环境变量的内容应该为d:\jdk1.6.0。那么我们设置这个环境变量的作用是什么呢?就单独的java开发而言,这个环境变量并没有任何作用,这就是很多根据书上的描述设置好之后,把一本书学完也没有用到这个变量,所以很是不理解。
    其实JAVA_HOME变量最好还是设置一下,首先,我们为了能够编译和运行java程序,需要在PATH环境变量中把java.exe所在的目录设置为PATH变量的一部分,目的是为了能够通过命令行运行javac和java命令成为可能,当你在命令行中输入javac ...或者java ...的时候,如果提示你一个错误:'javac' 不是内部命令或外部命令,也不是可运行的程序或批处理文件。这时候说明操作系统没有找到你通过命令行输入的javac这个命令,为什么呢?因为操作系统并不知道你的javac.exe这个文件在哪里,所以无法执行对应的文件。那么为了能够让操作系统找到这个可执行文件,我们就需要把javac.exe这个可执行文件所在的目录作为PATH环境变量的一部分设置起来,这样当你在命令行输入一个命令的时候,操作系统就会自动搜索PATH变量中所指定的所有目录了。在Windows系统中PATH变量中的所有路径采用分号分割,如果在Linux系统中采用冒号分割。另外说明一点,如果你设置好了环境变量,在命令行中还是出现同样的错误,那么有两种可能,一种就是你的设置不正确,另一种就是你的设置没有生效,一般你可以关闭命令行窗口再重新打开就可以了。这对这个设置,以刚才的目录为例,那么PATH变量中的内容就是...;d:\jdk1.6.0\bin,这时候我们可以借用已经设定过的JAVA_HOME,将PATH的内容修改为:...;%JAVA_HOME%\bin,这样的设置有一定的好处,当你的系统中重新安装JDK,并改变过目录的话,你只要修改JAVA_HOME的内容就可以了,PATH则不需要修改。此外,JAVA_HOME变量还会有一些其他用途,比如Eclipse这个IDE,它本身是由java程序编写的,那么在运行的时候必然需要虚拟机的存在,所以Eclipse在启动时需要查找虚拟机,如果有JAVA_HOME这个变量,那么Eclipse就会利用这个变量找到虚拟机的路径。所以虽然开始JAVA_HOME环境变量可以不设置,但是还是建议大家为以后考虑而设置上。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值