在没有设置环境变量之前,我们可以通过直接在应用程序中加带相关信息来运行我们的程序。比如,我们可以这样开始运行一个java程序:C:/jdk1.3.1/bin/java -jar C:/windows/desktop/myfiles/SimpleColorConverter.jar这样肯定没有错误,每次我们不得不敲上java应用程序的全路径和class文件的全路径,我们写一次没问题,两次不觉得长,三次也不觉得累,可是假如我们每次都要重复的敲上这一堆路径的话,那真的将会是一场噩梦。那么,我们怎么做才能够减轻我们的输入量呢?

一、简介:环境变量是操作系统、应用程序、脚本程序等等的指明灯,能够告诉他们需要的资源在哪里。大多数的系统都有一些预先设置好的环境变量,当然,我们也可以增加自己的环境变量。为了看看当前系统的环境变量,我们可以用如下的命令:在Linux/Unix系统上,在shell命令符输入 env ,然后回车在Windows系统中,在DOS窗口提示符输入 set ,然后回车这样,我们就可以看到系统当中的所有环境变量,假如我们想看看单个变量的值呢?

在Linux/Unix系统上,在shell命令符输入 echo $变量名 ,然后回车

在Windows系统中,在DOS窗口提示符输入 set 变量 或者 echo %变量%,然后回车

假如要设置一个环境变量,可以用下面的命令:

在Linux/Unix系统上,在shell命令符输入 eXPort 变量名="变量值" ,然后回车

在Windows系统中,在DOS窗口提示符输入 set 变量名="变量值" ,然后回车这样,就设置好了。

path和classpath环境变量的值都是一些有顺序的目录列表。告诉系统或者应用程序到哪里去寻找它们需要的资源。这个目录列表是由一系列的分隔符分开的,Linux/Unix系统下分隔符是冒号“:”windows系统中是分号“;”。假如,我们想在某个已经存在的环境变量值下加一些自己的值的话,可以这样:

Linux/Unix系统下: export CLASSPATH=$CLASSPATH:/path/to/program

Windows系统下: set CLASSPATH = %CLASSPATH%;c:/path/to/program

二、设置Java环境

要想方便的开发和运行Java应用程序,我们需要设置两个环境变量,一个path一个classpath。

设置好path变量,使得我们能够在系统中的任何地方运行java应用程序,比如javac、java、javah等等

这就要找到我们安装JDK的目录,比如我们的JDK安装在c:/jdk1.3/目录下,那么在c:/jdk1.3/bin目录下就是我们常用的java应用程序,

我们就需要把c:/jdk1.3/bin这个目录加到path环境变量里面。

classpath环境变量,是当我们在开发java程序时需要引用别人写好的类时,要让java解释器知道到哪里去找这个类。通常,sun为我们提供了一些额外的丰富的类包,一个是dt.jar,一个是tools.jar,这两个jar包都位于c:/jdk1.3/lib目录下,所以通常我们都会把这两个jar包加到我们的classpath环境变量中

set classpath=.;c:/jdk1.3/lib/tools.jar;c:/jdk1.3/lib/dt.jar。 注重对于jar包,在classpath中需要跟上完整地文件路径,而不能仅仅跟一个目录。第一个路径的点“.”,代表当前目录,这样当我们运行java AClass的时候,系统就会先在当前目录寻找AClass文件了。

Windows下JAVA用到的环境变量主要有3个,JAVA_HOME、CLASSPATH、PATH。

JAVA_HOME指向的是JDK的安装路径,如C:/JDK_1.4.2,在这路径下你应该能够找到bin、lib等目录。值得一提的是,JDK的安装路径可以选择任意磁盘目录,不过建议你放的目录层次浅一点,如果你放的目录很深,比如C:/XXXXXX/xxxxx/XXXX/xxxx/XXXX/xxxx/XXXX/xxx……

设置方法:

JAVA_HOME=C:/JDK_1.4.2      PATH环境变量原来Windows里面就有,你只需修改一下,使他指向JDK的bin目录,这样你在控制台下面编译、执行程序时就不需要再键入一大串路径了。设置方法是保留原来的PATH的内容,并在其中加上%JAVA_HOME%/bin (注,如果你对DOS批处理不了解,你可能不明白%%引起来的内容是什么意思;其实这里是引用上一步设定好的环境变量JAVA_HOME,你写成C:/JDK_1.4.2也是可以的;你可以打开一个控制台窗口,输入echo %JAVA_HOME%来看一下你的设置结果) :

PATH=%JAVA_HOME%/bin;%PATH%

同样,%PATH%是引用以前你设置的PATH环境变量,你照抄以前的值就行了。

CLASSPATH环境变量我放在最后面,是因为以后你出现的莫名其妙的怪问题80%以上都可能是由于CLASSPATH设置不对引起的,所以要加倍小心才行。

CLASSPATH=.;%JAVA_HOME%/lib/tools.jar

首先要注意的是最前面的".;",如果你看不清,我给你念念——句点分号。这个是告诉JDK,搜索CLASS时先查找当前目录的CLASS文件——为什么这样搞,这是由于LINUX的安全机制引起的,LINUX用户很明白,WINDOWS用户就很难理解(因为WINDOWS默认的搜索顺序是先搜索当前目录的,再搜索系统目录的,再搜索PATH环境变量设定的) ,所以如果喜欢盘根究底的朋友不妨研究一下LINUX。

为什么CLASSPATH后面指定了tools.jar这个具体文件?不指定行不行?显然不行,行的话我还能这么罗索嘛!:) 这个是由java语言的import机制和jar机制决定的,你可以查资料解决。

具体的设定方法: win2k/xp用户右键点击我的电脑->属性->高级->环境变量,修改下面系统变量那个框里的值就行了。

win9x用户修改autoexec.bat文件,在其末尾加入:

set JAVA_HOME=C:/JDK_1.4.2

set PATH=%JAVA_HOME%/bin;%PATH%

set CLASSPATH=.;%JAVA_HOME%/lib/tools.jar

Java中JAVA_HOME与CLASSPATH的解析2009-10-26 10:0945很多人在初学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的基础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,那么在检查一下你的当前目录。为了确保万无一失,按照上面讲述的例子进行操作是不会发生任何错误。

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

为此我还录制了一段视频的讲解,你可以到这里下载:http://www.zilu.org/free/coursevideodetail.jsp?id=50

java 环境变量 classpath_classpath和环境变量设置相关推荐

  1. java 环境变量检测_java环境变量设置检测

    java环境变量设置检测 Java环境变量已经配置完了,不知道行不行,那么java环境变量设置检测呢?一起来看看吧! java环境变量设置检测 方法/步骤 首先,在桌面右击,选择"文本文档& ...

  2. java 代码 设置环境变量_Java 配置环境变量教程

    [声明] 欢迎转载,但请保留文章原始出处→_→ [正文] 1.安装JDK开发环境 开始安装JDK: 修改安装目录如下: 确定之后,单击"下一步". 注:当提示安装JRE时,可以选择 ...

  3. Java jdk的安装 与 环境变量的配置

    Java jdk的安装 与 环境变量的配置 1. 下载jdk (1)打开浏览器,在地址栏中输入 http://www.oracle.com/index.html,进入到Oracle的官方主页: (2) ...

  4. java环境变量大小写_java环境变量配置

    本文借鉴于他人 学习java的第一步就要搭建java的学习环境,首先是要安装JDK,JDK安装好之后,还需要在电脑上配置"JAVA_HOME"."path".& ...

  5. 初识Java+JDK的安装与环境变量的配置+IDEA的安装

    文章目录 一.初识Java 1.Java的简介 2.Java的诞生 3.Java优势和缺点 优势 劣势 4.Java三大版本 二.JDK的下载和安装 1.JDK是什么? 2.JDK的种类 3.JDK的 ...

  6. 怎样配置java的环境变量_java配置环境变量步骤

    在完成了JDK的安装后,环境变量设置是其安装后的首要操作,有人会问为什么要设置这个,要理解这个你首先要明白环境变量的涵义,它可以简单的理解为路径导向. . JAVA_HOMEC:\Usr\Java\j ...

  7. Java环境搭建及JAVA-jdk环境变量配置

    环境搭建 一.下载并安装jdk,本人用的java8的版本,官网打开应该是最新版本的,java8版本可在网盘下载 二.网盘下载地址:https://pan.baidu.com/s/1Y9PJENB7cX ...

  8. 【Java基础系列教程】第二章 Java语言概述、配置环境变量

    一.计算机编程语言概述 1.1 语言 语言(英文:Language)是人类进行沟通交流的表达方式.例如:中国人与中国人用普通话沟通.而中国人要和英国人交流,就要学习英语.              语 ...

  9. 常见Dos命令、Java历史、Java跨平台、配置Path环境变量、第一个HelloWorld例子

    文章目录 常见Dos命令.Java历史.Java跨平台 计算机基础 计算机 硬件和软件 硬件 软件 人机交互的方式: 常见的dos命令 Java简介 Java语言重要特性之跨平台 跨平台 Java的跨 ...

最新文章

  1. 把ct图像像素值转化为_数字图像概论与基础
  2. 零基础学oracle pdf_零基础怎么学手绘插画!
  3. 用MATLAB作图像识别所需要注意的细节!
  4. 新人新气象,给自己加油!
  5. unicode_literals导致的UnicodeEncodeError
  6. 下 面 这 条 语 句 一 共 创 建 了 多 少 个 对 象 : String s=a+b+c+d;
  7. java 与 c#的 中 字符串比较“==”与“equals”的差异
  8. php 强制返回,php – 我可以强制抽象类的方法返回一些东西吗?
  9. linux自动重新启动,linux 系统自动重新启动,请帮忙看看
  10. 1486. 数组异或操作
  11. 从王者荣耀看设计模式(四.简单工厂模式)
  12. AC内WLAN漫游配置实例
  13. [2017.3.29]中国生育腚理不互质
  14. 云计算领导者,自主研发虚级化产品,华胜天成IVCS
  15. 基于WFST的语音识别解码器
  16. 科技文献检索(二)——文献定义及类型
  17. 【Windows】bat | 服务 | bat作为服务 | bat转exe
  18. bfptr算法(即中位数的中位数算法)
  19. 高性能消息中间件 NSQ 解析-应用实践
  20. 零基础小白入行3D建模,首先!你要了解什么叫建模!

热门文章

  1. Mac电脑开启root权限教程
  2. 了解Cortex-M3双堆栈MSP和PSP
  3. JFreeChart 基本教程
  4. 开放平台的开发者如何赚钱
  5. php fread 超时时间,fread的超时时间
  6. 乐乐语音挑战苹果siri,你赌谁赢?
  7. vim编辑器查询以及消除查询后黄色阴影
  8. vue-treeselect只能选择叶子节点,不能选中父节点
  9. stm32 40道选择题解1
  10. K12793 加勒比海盗