Java环境配置与设置JAVA_HOME,CLASSPATH,PATH的目的

原创 2012年03月27日 14:42:08

首先安装jdk于C,安装后目录为:C:\Program Files\Java\jdk1.6.0,然后右键我的电脑,选择高级--->环境变量,配置如下:

JAVA_HOME=C:\Program Files\Java\jdk1.6.0;

path=%JAVA_HOME%\bin;

classpath=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tool.jar;

点击确定完成。

 

HelloWorld.java经典测试代码:

public class HelloWorld{

public static void main(String args[]){

System.out.println("hello world !")

}

}

命令行输入:javac HelloWorld.java

生成HelloWorld.class

命令行输入:java HelloWorld

屏幕上打印"hello world !"

 

很多人在初学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环境变量可以不设置,但是还是建议大家为以后考虑而设置上。

我们继续来谈论CLASSPATH的问题,很多书上在讲解java程序的时候建议大家设置CLASSPATH这个环境变量,我们这里不建议大家设置。原因我们会在稍后的时候看到。讲到CLASSPATH,我们首先来看编写java程序时一直在用的两个命令javac和java。

javac的命令语法是这样的:

javac <选项> <源文件>

我们常用的情况是这样的:

javac -classpath <类路径> <要编译的java源文件>

这里的类路径输入什么呢?这里的类路径是指要编译的java源文件中所用的非java的基础API中的类在那个目录下,路径可以是多个目录,用分号隔开来。比如说我们要编译App.java这个文件,而这个文件中用到了com.util这个包中的MyDate这个类,现在我们假设MyDate这个类存在目录是:d:\mylib\com\util\MyDate.class,那么我们如何编译App这个类呢?我们的命令如下:

javac -classpath d:\mylib App.java

注意这里的classpath的内容,我们只是指定路径到package所在目录,并不能把package一起指定进去,而且MyDate.class必须在com\util这个目录中,因为这个类定义了package为com.util。好了现在你对javac中的classpath明白了吗?

我们再来看java这个命令,这个命令的语法是这样的:

java [选项] 类 [参数]

比如说以上面的例子,我们假设App这个类位于com.app这个package中,它的存放目录是:d:\dev\myapp\com\app\App.class,那么我们该如何运行这个类呢?命令如下:

java -classpath d:\dev\myapp;d:\mylib com.app.App

从命令中我们可以看到,在classpath后面我们指定两个目录,分别是App这个类的package所在的目录和MyDate这个类的package 所在的目录,这里的类路径要给定的是要运行的类和这个类用到的所有类的package所在的目录,多个目录之间用分号隔离开来,最后指定要运行的类的时候必须加上package。

好了到这里你应该彻底掌握了编译java程序和运行java程序的诀窍了吧。如果我们在系统环境变量中设置了CLASSPATH的话,在命令行中通过java运行的时候如果再不指定CLASSPATH参数,那么就会导致java虚拟机只是按照CLASSPATH环境变量中的目录搜索类,而不在你的当前目录下搜索类,结果自然会出现Exception in thread "main" java.lang.NoClassDefFoundError,所以当你看到这个错误的时候请查看一下你的系统环境变量,如果没有设置 CLASSPATH,那么在检查一下你的当前目录。为了确保万无一失,按照上面讲述的例子进行操作是不会发生任何错误。

最后祝遇到此类的麻烦的朋友早日解决问题!

安装JDK,window下为什么要设置环境变量JAVA_HOME、CLASSPATH、PATH??

JDK(java development kit),Java开发工具 JRE(java runtime environment),Java运行环境 path(环境变量)是dos以前的内部命令,wi...
  • ljheee
  • ljheee
  • 2016年03月05日 20:42
  • 4524

Windows下Java开发环境的搭建以及个人对path和classPath的理解。

以下任何言论都完全是个人的理解,如有雷同纯属巧合,如有错误,希望大家多多指出,共同学习!谢谢! 笔者是一个理解能力偏慢、稍钻牛角尖的程序员,什么东西都要从最基础理解起,一步一步向上理解,因此...
  • EvanWang1987
  • EvanWang1987
  • 2014年06月30日 00:12
  • 918

java中path和CLASSPATH的配置和意义解析

一、jdk中的jre和java目录下的jre文件的内容区别; 二、环境变量的设置; 三、path和CLASSPATH路径设置的意义和区别; 四、环境变量与系统环境变量的区别;...
  • eclipse_yin
  • eclipse_yin
  • 2016年05月18日 20:45
  • 3551

Java开发环境搭建 Path以及Classpath环境变量的配置

Java开发环境的搭建步骤: 一、下载并安装JDK(需要注意的是不同的操作系统以及不同的位数机型需要下载不同的JDK版本。我的是Windows平台64位的。) 二、下载并安装号JDK后(一般都选择...
  • BlueSky_USC
  • BlueSky_USC
  • 2016年07月04日 13:41
  • 2375

JDK设置环境变量(classpath)时:dt.jar ,tool.jar,rt.jar的作用

classpath的变量值--》.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar dt.jar和tools.jar是在JDK安装目录下的lib目录...
  • sunlovemoon1991
  • sunlovemoon1991
  • 2016年02月15日 11:41
  • 2854

Java开发环境中JAVA_HOME、classpath、Path的设置

太多的介绍设置都是安装在c盘的,
  • u013884561
  • u013884561
  • 2014年11月04日 20:20
  • 197

设置XX_HOME环境变量的目的

安装Hadoop系列工具的时候,动不动就要设置XX_HOME,有时候很是费解。因为我在Mac OS X上用brew套件安装器去安装这些工具,然后我没有设置XX_HOME也能在终端运行命令。 Java...
  • liaoqianwen123
  • liaoqianwen123
  • 2015年05月02日 17:26
  • 1148

Linux设置环境变量方法(export PATH)

1.动态库路径的设置 Linux下调用动态库和windows不一样.linux 可执行程序是靠配置文件去读取路径的,因此有些时候需要设置路径 具体操作如下 export LD_LIBRARY_PA...
  • u011455899
  • u011455899
  • 2016年04月27日 07:52
  • 7063

Win7下用cmd运行java程序及path与classpath的配置

用惯了ECLIPSE编写运行java程序,想试试在cmd中如何编译。    当然了,jdk是一定得安装的。否则没有jvm虚拟机,何谈编译?     在安装JDK后,比如我安装的是jdk1.7.0_...
  • carlosli
  • carlosli
  • 2013年03月31日 08:45
  • 4665

jdk环境变量的配置及path、classpath的作用和区别

配置jdk环境变量 path作用 classpath作用 path与classpath的区别 javac命令抛出异常的解释...
  • ZJDWHD
  • ZJDWHD
  • 2016年02月01日 14:29
  • 5324
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java环境配置与设置JAVA_HOME,CLASSPATH,PATH的目的
举报原因:
原因补充:

(最多只允许输入30个字)