JAVA 的classpath

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA 的classpath相关的知识,希望对你有一定的参考价值。

在E盘下设置了这个命令,calsspath=.;c:\; 先找E再找C最后找其他盘是这么意思
这个是在dos在操作的,先进入了E:
输入了calsspath=.;c:\;
要执行了xx.class,这个xx.class在C盘找如果没找到再去E盘找还是先找E后找C的??

classpath指的是Java进行编译,运行时需要用到的jar包位置.
一般设置为classpath= ".;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar"就可以了
注意是 .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
最前面有个点,不要把点漏了。

下面是网上摘的一些比较好的讲解,希望对你有所帮助:
CLASSPATH环境变量。作用是指定命令搜索路径,在命令行下面执行命令如javac编译java程序时,它会到PATH变量所指定的路径中查找看是否能找到相应的命令程序。我们需要把jdk安装目录下的bin目录增加到现有的PATH变量中,bin目录中包含经常要用到的可执行文件如javac/java/javadoc等待,设置好PATH变量后,就可以在任何目录下执行javac/java等工具了。

CLASSPATH是什么?它的作用是什么?
它是javac编译器的一个环境变量。
它的作用与import、package关键字有关。
当你写下improt java.util.*时,编译器面对import关键字时,就知道你要引入java.util这个package中的类;但是编译器如何知道你把这个package放在哪里了呢?所以你首先得告诉编译器这个package的所在位置;如何告诉它呢?就是设置CLASSPATH啦 :) 如果java.util这个package在c:\jdk\ 目录下,你得把c:\jdk\这个路径设置到CLASSPATH中去!当编译器面对import java.util.*这个语句时,它先会查找CLASSPATH所指定的目录,并检视子目录java\util是否存在,然后找出名称吻合的已编译文件(.class文件)。如果没有找到就会报错!
CLASSPATH有点像c\c++编译器中的INCLUDE路径的设置哦,是不是?当c\c++编译器遇到include <iostream>这样的语句,它是如何运作的?哦,其实道理都差不多!搜索INCLUDE路径,检视文件!
当你自己开发一个package时,然后想要用这个package中的类;自然,你也得把这个package所在的目录设置到CLASSPATH中去!
CLASSPATH的设定,对JAVA的初学者而言是一件棘手的事。所以Sun让JAVA2的JDK更聪明一些。你会发现,在你安装之后,即使完全没有设定CLASSPATH,你仍然能够编译基本的JAVA程序,并且加以执行。
参考技术A CLASSPATH .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
这样类似.....在我的电脑,属性,高级,环境变量

以上是关于JAVA 的classpath的主要内容,如果未能解决你的问题,请参考以下文章

flume handler

19-classpathjar模块

maven项目只能读到绝对路径下的文件,读不到相对路径下的文件

Eclipse Build Path 的理解

JAVA.包 JAVA类 JAVA APPLET .......等跟JAVA挨得上边得都要!

Java - 35 Java 实例