java环境classpathh环境怎么配置

classpath环境变量配置 - Java教程 - 编程入门网
classpath环境变量配置
如果没有配置classpath,JVM会在当前目录下查找类文件(编译.java文件生成的.class文件);配置classpath之后,JVM在运行类文件时,会到classpath指定的目录下去查找类文件。设置方法如下图:
&系统属性&--&&高级&--&环境变量,新建系统变量classpath
可在DOS窗口中运行set classpath命令查看当前的类文件路径,如图:
临时设置classpath环境变量
set classpath=D:\Java\study
把当前目录和JDK目录包含在classpath路径中:
set classpath=.;%path%;D:\Java\study
该设置只在当前的DOS窗口中有效
URL: /Programming/Java/03.htm当前位置:
Java中path、classpath环境变量的配置问题
  一、 编译和运行Java程序必须经过两个步骤:
  1、将源文件编译成字节码;
  2、解释执行平台无关的字节码程序。
  二、问题
  以上两个步骤分别需要使用javac和java两个命令(javac命令对java源文件进行编译生成class文件,java命令对生成的class文件进行运行),如果我们直接在cmd命令行窗口里依次输入javac和java命令,可能会看到以下错误:
  另外当我们移动了class文件后,执行java命令时,会出现以下错误:
  三、分析问题
  我们已经在计算机里安装了JDK,而jdk的安装路径下也包含了java和javac命令,为什么会出现这样的错误。
  错误一:原因是命令行或控制台没有找到javac和java命令。
  当我们输入javac或java命令时,命令行会先在当前目录中(上例为:E:/Demo/java)查找是否有javac.exe或java.exe 这个文件,若没有则在系统的path环境变量中查找。
  错误二:这是因为命令行没有找到class文件。
  当我们执行java命令时,若没有配置classpath环境变量,则java虚拟机会在当前目录下查找class文件(即Java类),若当前目录下没有,则会出错;若我们配置了classpath环境变量,则java虚拟机会直接到环境变量指定的路径查找。
  四、解决方案
  错误一:
  根据问题分析,错误一的解决方案有两种:一是需要我们找到文件所在目录,二是直接在系统里配置path环境变量。
  很显然种方法太麻烦了些,而第二种方法可谓是一劳永逸,它可以让我们在任意目录下都可以执行程序。那得如何配置path环境变量呢?
  path环境变量
  Windows操作系统根据Path环境变量来查找命令。PATH环境变量的值是一系列路径,如我的计算机里的path变量是这样的:
  D:\TELLHOW\java\jdk1.5.0_09\%CATALINA_HOME%\%CATALINA_HOME%\C:\Windows\System32;D:\app\Administrator\product\11.2.0\dbhome_1\BIN;D:\Program Files\MySQL\MySQL Server 5.5\bin
  Windows将在这一系列的路径中依次查到命令,如果能找到这个命令,则该命令是可执行的,否则就会出错。
  (path和PATH在Windows操作系统中是没有区别的,它不区分大小写)
  因此,我们只需找到javac和java命令的存放路径,如:D:\TELLHOW\java\jdk1.5.0_09\bin,添加进path环境变量中即可,注意用“;”分号隔开。
  我们可以在命令行内直接输入javac,按“Enter”键来验证配置是否正确,若看到以上信息(这其实是javac.exe的使用信息,以后我们会用到里面的几个),则表示配置正确(这与路径“E:/Demo/java”无关)。
  写到这可能有人会问,“E:/Demo/java”是谁的地址呢?很显然这是程序javac.exe所运行文件Test.java的路径。
  错误二:
  几乎每一本介绍java入门的书里都会介绍classpath环境变量的配置,在网上也有很多,但对于classpath环境变量的作用则常常语焉不详。
  其实,如果使用1.5以上版本的JDK,完全可以不用设置classpath环境变量就能正常运行程序。因为1.5版本以上JDK有一个功能,它会自动搜索当前路径下的类文件,而且使用Java的编译和运行工具时,系统可以自动加载dt.jar(是关于运行环境的类库,主要是swing的包)和tools.jar(是关于一些工具的类库)文件中的Java类,因此不再需要设置classpath环境变量了。
  但是其之前的版本并没有这样的功能,所以我们会看到网上会有这样的配置:.;C:\ProgramFiles\Java\jdk1.7.0_05\lib\dt.C:\Program Files\Java\jdk1.7.0_05\lib\tools.
  这个配置中前面一点表示当前路径,另外是将dt.jar和tools.jar两个文件添加到classpath环境变量里。
  从上不知道你有没有发现问题,一个1.7版本的竟然还在使用1.4及以前的classpath环境变量配置方法,这似乎说明了一个问题,IT行业飞速发展,知识在不断地更新,网上其实有很多的知识是滞后的,所以我们必须重视这样的一个问题,不能太过实用主义。
  那么classpath环境变量的作用是什么呢?
  如果我们有很多类文件并放在不同的路径下,当我们需要执行指定路径下的文件时,这时classpath环境变量就体现了它的用处。
  五、问题延伸
  不知你有没有想过,在一些特殊的情况下我们可能会使用临时的环境变量配置。比方说我们借用别人的计算机时,却不能改动别人的计算机设置,这时你会怎么做?我想的办法就是一个移动U盘加临时环境变量配置。
  临时环境变量配置可以使用DOS命令,在cmd命令行中输入set,你会看到你的计算机中所有的环境变量,如图所示:
  而通过输入set& path可显示出path的所有变量,如图:
  而设置临时的path环境变量则只需输入:
  set& path=F:/Demo/java即可,它对计算机系统中的配置没有影响。
  另有输入:
  set path=F:/Demo/%path%
  这表示在原有的设置上添加一个路径,对对计算机系统中的配置没有影响。
  总结一下就是:
  set:用于查看本机的所有环境变量;
  set 变量名:查看一个具体的环境变量;
  set 变量名=:清空一个环境变量;
  set& 变量名=具体值:给指定变量定义具体指;
  set 变量名=具体值;%path%:在原有环境变量基础上添加新值。
  注意:这种配置方式只在当前dos窗口有效,窗口关闭后则配置消失。
  同理可得,classpath环境变量的临时配置也是一样,在此不多隆
  本文来源:51CTO 博客& 苏渊毛的 BLOG 原文链接:http://wuyunncu./3900&
阅读:8088次
推荐阅读:
联系我们:
电话:400-
邮编:210014 & & & &官方微博:/njcstor & & &&微信公众号:cStor_cn
地址:南京市白下高新技术产业园中国云计算创新基地A栋9层
(在地图软件上搜“”即可)
版权所有 &
南京云创大数据科技股份有限公司(股票代码:835305), 保留一切权利。&&
云创大数据-、大数据、云计算产品供应商本帖子已过去太久远了,不再提供回复功能。关于Java的path,classpath,java_home环境变量的配置与具体含义
关于Java的path,classpath,java_home环境变量的配置与具体含义
&&&&对于一个Java初学者来说,第一步要做的是安装jdk并配置环境变量,一般按照书上或者网上的步骤,一步步照着做就行了,但是对于初学者来说,很多问题没有解决,比如为什么很多配置方法各不相同,却都能够配置成功?而且很少有人能够解释清楚path,classpath,java_home的含义是什么。
我刚学Java的时候也是一头雾水,随着学习的深入,逐渐了解了这些变量的含义,在此,把我的一些想法和收获与大家分享。
首先,我们先来看一下通过cmd对Java文件的执行步骤。我之前在E盘Java文件夹下保存了HelloWorld.java文件,下面使用这个文件进行示范。
&&&&首先跳转到Java文件夹目录下
然后使用javac命令对HelloWorld.java文件进行编译,此时当前目录下会自动生成一个HelloWorld.class文件。
&&&&&这一指令的含义是操作系统调用一个名为javac.exe的应用程序对HelloWorld.java文件进行处理,处理结果保存在一个名为HelloWorld.class文件的文件中。
然后我们使用java命令对HelloWorld.class文件进行执行,屏幕上显示出“Hello
World!”,表示执行成功。
这一指令的含义是操作系统调用一个名为java.exe的应用程序对HelloWorld.class文件进行处理(文件的后缀.class应省略掉)。执行结果出现在屏幕上。
&&&&&&&现在我们有一个疑问,系统是如何找到并调用javac.exe和java.exe两个应用程序的?打个比方,平时我们运行某一程序,比如魔兽,酷狗音乐,都是先找到它们的应用程序war3.exe和kugou.exe的所在位置,然后双击运行。那么操作系统是如何自动找到javac.exe和java.exe的位置呢?这就是path环境变量的作用。
&&&&&&&path变量的值一般是一连串的目录,当初操作系统需要调用某一应用程序时,会默认的根据path变量的值,在各目录中依次搜索该应用程序,直到找到为止,否则返回错误提示。
本例中系统会根据path变量的值,依次在各个目录下查找javac.exe和java.exe两个应用程序,所以我们要将javac.exe和java.exe的所在目录添加到path环境变量的值中。如图所示,jdk的各个应用程序一般都在安装文件目录下的bin文件夹中,所以我们就应该在path中添加“C:\Program
Files\Java\jdk1.6.0_22\bin”这个目录。注意,目录之间用分号“;”隔开;目录位置是在前还是在后没影响,反正系统是要依次查找的。
下面我们来讨论classpath环境变量的作用。它的值也是由目录组成,它的作用在于告诉Java执行环境,在哪些目录下可以找到所要执行的Java程序所需要的类或者包。比如我要运行一个名为Test.class的文件,而这个程序调用了另一个Link.class文件的内容,那么系统必须知道Link.class文件的位置才能调用Link.class文件。如果Link.class文件的目录在classpath环境变量的值中,就可以找到了。
事实上,从jdk5.0开始,会默认在当前目录和jdk的lib目录中(C:\Program
Files\Java\jdk1.6.0_22\lib)查找,如果所需的.class文件都在上述两个目录中,则classpath的值只需设置为“.;”,这个点表示当前目录。否则要根据情况添加classpath的值。
&&&&&至于java_home环境变量,可有可无。java_home一般设置为jdk的安装目录,比如C:\Program
Files\Java\jdk1.6.0_22。如果设置了java_home,那么path环境变量可以配置为“%java_home%\bin”,可以看出java_home的作用是使得其他相关环境变量的配置更加方便简洁。
以我的Java环境变量为例,我只配置了两个环境变量
path:& C:\Program Files\Java\jdk1.6.0_22
&&&&&classpath:
希望以上内容对大家有所帮助。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。/content/12/209_.shtml
在没有设置环境变量之前,我们可以通过直接在应用程序中加带相关信息来运行我们的程序。比如,我们可以这样开始运行一个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.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%/%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%/%PATH%
set CLASSPATH=.;%JAVA_HOME%/lib/tools.jar&Java中JAVA_HOME与CLASSPATH的解析& 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源文件中所用的非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/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从sun网站上直接下载JDK:/j2se/1.4.2/download.html 提供了两个下载:1、RPM in self-extracting...
ll不是命令,是ls -l的别名
按大小排序
[root@localhost ~]# ll -Sh 
按时间排序
[root@localhost ~]# ll -rt
Perf是内置于Linux内核源码树中的性能剖析(profiling)工具。
它基于事件采样原理,以性能事件为基础,支持针对处理器相关性能指标与操作系统相关性能指标的性能剖析。
常用于性能瓶颈的查找与...
redis cluster管理工具redis-trib.rb详解
redis-trib.rb 命令 command 详解
ll 命令列出的信息更加详细,有时间,是否可读写等信息
ll命令和ls -l命令结果区别:
上面结果说明:
ll会列出该文件下的所有文件信息,包括隐藏的文件,而ls -l只列出显式文件...
用法:ls [选项]... [文件]...
列出 FILE 的信息(默认为当前目录)。
如果不指定-cftuvSUX 或--sort 选项,则根据字母大小排序。
长选项必须使用的参数对于...
ubuntu没有ll命令
令人不爽,索性自己添加一个
实际上就是 用 ll 相当于 ls -l 多 Linux 用户都使用 bash shell,对普通用户来说用得最多的就是命令补全 (按 tab...
下载安装完java,首先要做的就是配置环境变量的系统变量(进入我的电脑,右键选属性,选高级,点环境变量,这样就进入了环境变量配置,我们要配置的是下面的系统变量),一般需要配三个变量path,java_...
他的最新文章
讲师:刘文志
讲师:陈伟
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)}

我要回帖

更多关于 gradle classpath配置 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信