我们在系统的环境变量里面添加一个新的变量叫 CLASSPATH。他的描述方法用PATH的描述方法:
可以看到,新的变量 CLASSPATH使用的系统的路径表示的(例如D:\classes\ 就是一个系统的路径),但是不能用环境环境变量PATH,所以不能写成:
%Path%;D:\classes\;D:\j2sdk1.4.2b\lib\dt.jar;D:\j2sdk1.4.2b\lib\tools.jar
或者
$Path;D:\classes\;D:\j2sdk1.4.2b\lib\dt.jar;D:\j2sdk1.4.2b\lib\tools.jar
这样当jvm想要调用Java文件(class文件)的时候,不能通过PATH寻找,只能 从CLASSPATH寻找了。
让我们看一个例子:
D:\JavaTest>javac HelloWorld.java
这一步的执行过程是:
1.系统发现启动的程序是javac,于是开始寻找javac.exe。
2.找到之后,运行javac.exe,附加参数HelloWorld.java
3.javac编译HelloWorld.java -> HelloWorld.class
如果HelloWorld.java中有其他类库(类库就是分类整理好的一堆class 文件)的引用,例如:
import java.io.*; import com.hdpan.util.*;
对于标准类库的引用,像上面的"java.io.*",可以直接使用,也就是说它 不需要显示的放在系统的环境变量CLASSPATH中。
而对于非标准类库,像"com.hdpan.util.*",javac怎么来找到它呢? 上面说了,它是通过系统的环境变量CLASSPATH来找:让我们再回顾一下我 们的CLASSPATH是如何设定的:
.;D:\classes\;D:\j2sdk1.4.2b\lib\dt.jar;D:\j2sdk1.4.2b\lib\tools.jar
然后再看看当前的目录结构:
JAVA中classpath的了解[归纳] - 无风 - 听雨无风
首先找到D:\JavaTest\HelloWorld.java,这个是我们正在编译的文件,接 下来,我们来看看javac是怎么来寻找net.eastdawn.util.*的:
发现是非标准类库,开始搜索CLASSPATH,第一个CLASSPATH是".",也就是当前目录,当前目录有一个net文件夹,然后eastdawn,可是eastdawn文件夹下面没有util文件夹,于是第一个CLASSPATH搜索失败。然后搜索第二个CLASSPATH "D:\classes\",果然再此发现了net\eastdawn\util\,于是这里编译通过。
至此,D:\JavaTest>javac HelloWorld.java 执行完毕。
现在也应该明白为什么在CLASSPATH的前面会有一个 "."了吧?他就是为了优先 搜索当前目录下的class。
运行完javac之后,当前目录多一个文件:HelloWorld.class,运行它:
D:\JavaTest>java HelloWorld
(注意:是java HelloWorld,而不是java HelloWorld.class)
这里用到了java命令,所以启动一个jvm(jvm是什么?看前面的文章吧,:)), 开始搜索CLASSPATH,首先按照"."搜索,在当前目录找到了HelloWorld.class, 于是运行!
现在你明白了为什么许多人别写了HelloWorld却在运行的时候出现这个了吧:
你想对了,就是因为jre不能根据CLASSPATH来找到HelloWorld.class, 哪怕HelloWorld.class就在当前目录,当时环境变量的CLASSPATH里没有 "."这个 设定,同样是找不到!
在web工程下,CLASSPATH的具体目录以及解释是:
classpath是指 WEB-INF文件夹下的classes目录
classes含义:
1.存放各种资源配置文件 eg.init.properties log4j.properties struts.xml
2.存放模板文件 eg.actionerror.ftl
3.存放class文件 对应的是项目开发时的src目录编译文件
总结:这是一个定位资源的入口
分享到:
相关推荐
Spring 配置中的classpath:与classpath*:的区别 Spring 配置中的classpath:与classpath*:的区别是 Spring 框架中一个常见的问题。本文主要介绍了这两种路径的区别、使用场景及注意事项,以帮助读者更好地理解和使用...
### Java中的Path与Classpath设置详解 在Java开发过程中,正确配置环境变量是十分重要的一步。其中,`path`和`classpath`是最为关键的两个环境变量,它们直接影响到Java程序能否正常编译和运行。 #### 一、Path 的...
在Java编程环境中,`Classpath`(类路径)是一个至关重要的概念,它是Java虚拟机(JVM)查找和加载.class文件的路径。当我们在开发和运行Java程序时,正确配置Classpath是确保程序能正常运行的关键步骤。这篇文档将...
2. **设置`classpath`**:你可以通过`-cp`或`-classpath`命令行选项来设置`classpath`,或者在`JAVA_HOME/bin`目录下的`java.exe`启动脚本中修改`CLASSPATH`环境变量。 3. **路径分隔符**:在Windows上,路径之间...
Java的classpath是每个Java开发者都必须了解的关键概念,它决定了JVM(Java虚拟机)在执行Java程序时如何查找和加载所需的类文件。本文将深入探讨classpath的基本原理、配置方式以及如何确保`javac`正确编译运行Java...
Java 环境配置与设置 JAVA_HOME, CLASSPATH, PATH 的目的 Java 环境配置是 Java 开发的基础,我们需要正确地配置 JAVA_HOME, CLASSPATH, PATH 等环境变量,以便正确地编译和运行 Java 程序。在本节中,我们将详细地...
IKVM.GNU.Classpath是一个专为.NET Framework设计的开源项目,它使得Java应用程序可以在.NET平台上运行。这个项目的核心是IKVM.NET,一个实现了Java虚拟机(JVM)和大部分Java核心类库的.NET版本。IKVM这个名字是...
path与classpath的区别 path与classpath是Java开发中两个常见的概念,但它们之间的区别却经常被混淆。下面,我们将详细介绍path和classpath的作用、区别以及它们在Java开发中的应用。 path的作用 path是系统用来...
在Java编程环境中,路径(Path)和类路径(Classpath)是两个至关重要的概念,它们对程序的编译和运行起着决定性的作用。本文将深入解析这两个概念,并结合源码和工具,帮助你理解它们的工作原理。 首先,让我们来...
### Java的Classpath详解及其重要性 在Java编程的学习与实践中,环境配置是入门的关键步骤之一,其中最为棘手的问题之一便是如何正确设置`classpath`。`classpath`不仅影响着程序能否正常编译和运行,还关系到...
Java中的ClassPath和Package是Java开发中至关重要的概念,它们直接影响到Java程序的编译和运行。在这篇文章中,我们将详细探讨这两个主题。 首先,让我们理解什么是ClassPath。ClassPath是Java虚拟机(JVM)查找类...
在编程世界中,Java是一种广泛使用的跨平台语言,它的运行依赖于类路径(Classpath),这是一个指示Java虚拟机(JVM)查找.class文件的环境变量。本文将详细讲解如何在Linux和Windows操作系统下动态设置classpath以...
### Java Classpath 配置详解 #### 一、前言 对于初学Java的朋友而言,配置Java环境常常是一项艰巨的任务,尤其是如何正确设置`classpath`。这篇文章将通过一系列实际操作来详细阐述`classpath`的配置过程,帮助...
"eclipse工程中.classpath文件的含义" .classpath文件是Eclipse中一个非常重要的配置文件,它记录了项目的类路径信息,包括源代码目录、库文件路径、编译器设置等信息。下面我们将详细解释.classpath文件中的各个...
### jdk的classpath路径和环境配置 在Java开发过程中,正确配置JDK(Java Development Kit)的环境变量是非常重要的步骤之一。它不仅关乎到开发工具能否正常运行Java程序,还直接影响到开发效率与项目的顺利进行。...
在IT行业中,尤其是在Java开发中,管理类路径(CLASSPATH)是至关重要的。"一个自动生成CLASSPATH字符串的脚本" 提供了一种自动化的方法来处理这个常见的编程任务,尤其适用于复杂的项目结构或多模块项目。这篇博客...
标题中的“Spring2.5 自动扫描classpath”指的是Spring框架在2.5版本中引入的一项功能,即自动组件扫描(Auto-Component Scanning)。这项功能允许开发者无需在XML配置文件中显式声明bean,而是通过在类上添加特定...
Java语言的classpath环境变量是Java开发和运行过程中不可或缺的一个配置项。它定义了Java虚拟机(JVM)在执行程序时查找类文件的路径,确保JVM能够找到所需的类库和资源。理解并正确设置classpath对于Java开发者至关...
Java命令行classpath(类路径)的设置是Java开发过程中的一项基础操作,对于理解和运行Java程序至关重要。类路径是指定Java虚拟机(JVM)在执行Java程序时查找类文件的位置。正确配置类路径能确保JVM能够找到并加载...
标题 "Drools报错: The Eclipse JDT Core jar is not in the classpath" 提示了一个常见的编程问题,即在使用Drools规则引擎时,由于缺少Eclipse JDT(Java Development Tools)核心库,导致运行错误。这个问题涉及...