请教java环境变量配置为什么要配置3个JAVA_HOME,PATH,CLASSPATH?
4个回答
展开全部
path:作用在于当我们在控制台输入javac HelloWorld.java java HelloWord时,系统可以明白要到哪里去找javac,java命令,这个环境变量不是java独有的,其他程序也需要这个环境变量。
classpath:作用在于运行javac,java命令时,java程序可以知道要那哪里去找Java程序的源文件,以及字节码文件。
java_home:这个环境变量可以不配置。
所以,
如果不配置path:那么输入javac HelloWorld.java时,可能会提示找不到命令(由系统提示)。
如果不配置classpath:那么输入java HelloWord时,可能会提示找不到类的错误(由Java程序提示)。
要注意,最新的JDK已经可以不配置以上环境变量了,
现在最新的逻辑是,
如果不配置,可以到默认的地方找到所需的文件;
如果配置错误,那么运行错误。
如果配置正确,那么运行正确。
所以如果你会配置,那么你就配置;如果你还不清楚,那么你可以不配置。
classpath:作用在于运行javac,java命令时,java程序可以知道要那哪里去找Java程序的源文件,以及字节码文件。
java_home:这个环境变量可以不配置。
所以,
如果不配置path:那么输入javac HelloWorld.java时,可能会提示找不到命令(由系统提示)。
如果不配置classpath:那么输入java HelloWord时,可能会提示找不到类的错误(由Java程序提示)。
要注意,最新的JDK已经可以不配置以上环境变量了,
现在最新的逻辑是,
如果不配置,可以到默认的地方找到所需的文件;
如果配置错误,那么运行错误。
如果配置正确,那么运行正确。
所以如果你会配置,那么你就配置;如果你还不清楚,那么你可以不配置。
展开全部
一 Path变量是操作系统的,用以找寻相关命令的。例如ping这个命令,你能在控制行里打ping 127.0.0.1而有程序执行并正确返回结果,是因为Path变量包含C:\Windows\System32。你可以在Path中把C:\Windows\System32去掉,再使用ping命令,就会提示找不到ping命令。
这就像你在你的办公桌上工作,需要用到各种工具,如钢笔,如果你不写张纸贴在你桌边儿,就不知道它在哪,需要走到这走到那儿去找,直到找到。Path就相当于一个记录了工具位置的小便笺,它写着铅笔在同事小王的笔筒里,你就会直接去那儿拿, 而不是来回cd到所有目录里找。 对,你可以试试,只要ping.exe在C:\Windows\System32里,你随时都可以用C:\Windows\System32\ping来使用这个命令,而配置了Path,你就可以直接打入ping来使用。
然而,想要检查Path配置有效与否,需要一个命令 where, Linux里是which。 比如检查java配置好与否, where java, 它就会返回java命令的路径。这个命令还可以检查你配置的java是不是你要的那个java, 例如你安装了1.6 和1.7两个版本的jdk, 可是想要用1.7时,打java -version它总是返回当前版本是1.6怎么办? 那就用where检查一下第一个输出的路径位置的java是不是1.7的,不是的话,在path中把你的1.7位置的路径调地放置前一些。
二 OK, 你可能看到Path里配置的是%SystemRoot%\System32而并非C:\Windows\System32。这就是因为变量SystemRoot的值是C:\Windows。这也就是又独立出一个JAVA_HOME的原因了。需要配置JAVA_HOME有两个好处,1), 你不用改变Path的值,只需要改变JAVA_HOME的值,就可改变要用的java.exe,javac.exe的命令位置;2)统一所有使用Java程序的路径 ,所以不推荐有些兄弟说的不必配置JAVA_HOME,各种java程序已经默认JAVA_HOME为找寻java的变量,为避免日后安装的tomcat等程序找寻java方便,还是配置一下的好。之所以不必配置是因为新的JDK在安装时会向注册表里填入JAVA_HOME的位置。
三 Classpath,顾名思义,就是java class的位置,就是运行相关class, 这些class需要告诉java在哪可以找到它,从而使用。你要在java代码中import java.lang.String, String的位置就需要给出,简单说,class是系统库位置以及自定义class位置集合。再深刻点儿说,java中的系统ClassLoader需要用它来将用到的class 加载(load)以供程序使用。
最后,如果你用eclipse等IDE的话,对于你自己在eclipse里写的程序,是任何变量都不需要配置的,因为IDE也可以看作是一个小型的系统,它也有自己的环境变量。当然对于eclipse这个程序,还是需要在系统中配置的。
这就像你在你的办公桌上工作,需要用到各种工具,如钢笔,如果你不写张纸贴在你桌边儿,就不知道它在哪,需要走到这走到那儿去找,直到找到。Path就相当于一个记录了工具位置的小便笺,它写着铅笔在同事小王的笔筒里,你就会直接去那儿拿, 而不是来回cd到所有目录里找。 对,你可以试试,只要ping.exe在C:\Windows\System32里,你随时都可以用C:\Windows\System32\ping来使用这个命令,而配置了Path,你就可以直接打入ping来使用。
然而,想要检查Path配置有效与否,需要一个命令 where, Linux里是which。 比如检查java配置好与否, where java, 它就会返回java命令的路径。这个命令还可以检查你配置的java是不是你要的那个java, 例如你安装了1.6 和1.7两个版本的jdk, 可是想要用1.7时,打java -version它总是返回当前版本是1.6怎么办? 那就用where检查一下第一个输出的路径位置的java是不是1.7的,不是的话,在path中把你的1.7位置的路径调地放置前一些。
二 OK, 你可能看到Path里配置的是%SystemRoot%\System32而并非C:\Windows\System32。这就是因为变量SystemRoot的值是C:\Windows。这也就是又独立出一个JAVA_HOME的原因了。需要配置JAVA_HOME有两个好处,1), 你不用改变Path的值,只需要改变JAVA_HOME的值,就可改变要用的java.exe,javac.exe的命令位置;2)统一所有使用Java程序的路径 ,所以不推荐有些兄弟说的不必配置JAVA_HOME,各种java程序已经默认JAVA_HOME为找寻java的变量,为避免日后安装的tomcat等程序找寻java方便,还是配置一下的好。之所以不必配置是因为新的JDK在安装时会向注册表里填入JAVA_HOME的位置。
三 Classpath,顾名思义,就是java class的位置,就是运行相关class, 这些class需要告诉java在哪可以找到它,从而使用。你要在java代码中import java.lang.String, String的位置就需要给出,简单说,class是系统库位置以及自定义class位置集合。再深刻点儿说,java中的系统ClassLoader需要用它来将用到的class 加载(load)以供程序使用。
最后,如果你用eclipse等IDE的话,对于你自己在eclipse里写的程序,是任何变量都不需要配置的,因为IDE也可以看作是一个小型的系统,它也有自己的环境变量。当然对于eclipse这个程序,还是需要在系统中配置的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
对于这个问题如果从专业的角度回答, 楼上的回答已经很完美了!不过对于Java入门而言没有必要去过于纠结,“亦步亦趋”是一个入门者学习语言很好的策略。这些东西如果以后编写桌面应用时会用到windows中的cmd命令时就能有一个很清晰很系统的理解。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-02-15 · 知道合伙人数码行家
关注
展开全部
您好,提问者:
可以就配置一个path就行。
可以就配置一个path就行。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询