`
0769
  • 浏览: 83672 次
  • 性别: Icon_minigender_1
  • 来自: 东莞
社区版块
存档分类
最新评论

classpath的理解

阅读更多

  jvm的类加载分三中方式:

  系统级别:rt.jar

  扩展级别:java_home/jre/lib/ext/目录下的jar文件

  应用级别:环境变量中的classpath或javac   java中的参数指定java   -classpath   ..     ...

  或者自己写ClassLoader加载。

  前面2中是JVM自动处理。其中第二种是为了处理Java的classpath灾难而提供的解决方案。

  ----------------------------------------------------------------

  实际上java虚拟机是由java luncher初始化的,也就是java(或java.exe)

  这个程序来做的.   虚拟机按以下顺序搜索并装载所有需要的类:

  1,   引导类:   组成java平台的类,   包含rt.jar和i18n.jar中的类.

  2,   扩展类:   使用java扩展机制的类,都是位于扩展目录($JAVA_HOME/jre/lib/ext)

  中的.jar档案包.

  3,   用户类:   开发者定义的类或者没有使用   java   扩展机制的第三方产品.   你必须在

  命令行中使用   -classpath   选项或者使用   CLASSPATH   环境变量来确定这些类的位置.   我

  们在上面所说的用户自己的类就是特指这些类.

  这样,   一般来说,   用户只需指定用户类的位置,   引导类和扩展类是 "自动 "寻找的.

  当你的程序需要第三方的类库支持,   而且比较常用,   就可以采用此种方法.比如常

  用的数据库驱动程序,   写   servlet   需要的   servlet   包等等.   设置方法就是在环境变量中

  加入   CLASSPATH.   然后就可以直接编译运行了.而你的程序只用了些基础类,寻找时,就用不

  着必须设定它.

  ----------------------------------------------------------------

  在执行Java程序的时候,会自动加载程序用中需要的在rt.jar和其他java_home\jre\lib中包含的.jar文件中包含的Java基础类库和一些扩展类库。这些都是JVM自动处理的,对用户来说是透明的。

  如果Java程序中使用到了一些应用级别的类(如第三方的类),可以在javac和java中的-classpath选项中指定它们的搜索路径,或者是自 己写ClassLoader加载,另外也可以设置ClassPath环境变量,在里面指定那些应用级别的类的搜索路径。

  设置ClassPath环境变量不是必须的,只是为了方便使用,设置了ClassPath,JDK就会按ClassPath制定的路径去搜索需要的应用级别的类,而不必每一次都使用-classpath选项或自己写ClassLoader。

  还有需要注意的就是:如果相关的类就在当前工作目录下的话,上面3种方法都可以不要,因为JDK系统会首先搜索会在当前的工作目录中搜索程序相关的类。 (在jdk1.6.0.20下已经验证)

 

转自(http://java.chinaitlab.com/)

分享到:
评论

相关推荐

    java classpath 理解

    ### Java Classpath 理解 #### 一、在命令行查看 Classpath 在 Java 开发环境中,了解如何查看当前环境下的 classpath 非常重要。这有助于开发者明确类库和其他依赖项的位置,从而更好地管理项目的运行环境。 1. ...

    浅析Spring配置中的classpath:与classpath*:的区别

    本文主要介绍了这两种路径的区别、使用场景及注意事项,以帮助读者更好地理解和使用 Spring 配置。 概念解释 classpath:是指 WEB-INF 文件夹下的 classes 目录。通常我们使用这种写法是在 web.xml 中,例如 Spring...

    关于classpath

    总结,理解并正确配置classpath是Java开发中的基础,也是确保程序能正常运行的关键。合理地管理classpath可以有效避免类找不到或重复加载等问题,提高开发效率。通过掌握上述知识,你将能够更自如地应对classpath...

    自学如何使用框架的工具classpath

    在Java等编程语言中,理解和管理`classpath`对于正确地使用框架至关重要。`classpath`是一个环境变量或配置设置,它告诉Java虚拟机(JVM)在哪里寻找类文件,这些类文件包含了运行Java程序所需的类和库。 首先,...

    Path和classpath配置详解

    这时,理解Classpath的顺序和优先级就变得至关重要。默认情况下,JVM会按照Classpath中的顺序从前到后查找,第一个找到的类就会被加载。因此,合理设置Classpath可以避免因类重复或缺失而导致的问题。 总结来说,...

    Classpath Variable 解决办法

    通过理解Classpath的工作原理和配置方式,以及解决常见问题的方法,开发者能够更好地管理和调试Java项目,确保程序的稳定运行。记住,良好的Classpath管理是优化项目性能和减少运行时错误的关键。

    GNU Classpath

    对于Java开发者来说,理解GNU Classpath和Jamvm的组合非常重要,因为这不仅有助于他们在资源受限的环境中部署Java应用,还可以深入学习Java类库的内部工作原理。通过参与这样的开源项目,开发者可以提升自己的编程...

    计算机专业、信计专业毕业实习报告 (2).docx

    报告者分享了自己的Java学习经验,强调了JDK的安装和使用、CLASSPATH理解、package和import的处理,这些都是初学者常见的难点。通过阅读专业书籍,深入理解这些问题,可以为后续的Java语法学习扫清障碍。Java语法的...

    classpath 和path

    ### classpath与path详解 #### 一、概念介绍 在深入了解`classpath`和`path`之前,我们需要先明确这两个环境变量的基本...通过上述步骤和案例分析,我们可以更好地理解和应用`classpath`和`path`的概念及其配置方法。

    java的classpath的终结者(不会让你失望)

    ### Java的Classpath详解及其重要性 在Java编程的学习与实践中,环境配置是入门的关键步骤之一,其中最为棘手的问题之一便是如何正确设置`...对于初学者来说,理解`classpath`的工作原理是掌握Java编程的基础之一。

    Spring2.5 自动扫描classpath

    描述中的链接指向了一个博客,虽然没有具体内容,但可以推测博主可能分享了关于如何在Spring 2.5中使用自动扫描classpath的具体实践和理解。 在标签中,“源码”意味着我们将讨论Spring框架内部的工作原理,尤其是...

    Java 中的 ClassPath 和 Package

    首先,让我们理解什么是ClassPath。ClassPath是Java虚拟机(JVM)查找类文件的路径。当JVM启动时,它需要知道在哪里能找到应用程序所依赖的类。如果没有正确配置ClassPath,JVM将无法找到所需的类,导致运行时错误,...

    一个自动生成CLASSPATH字符串的脚本

    首先,让我们理解什么是CLASSPATH。在Java环境中,CLASSPATH是指系统寻找.class文件的路径。它包含了Java虚拟机(JVM)加载类时要搜索的目录和JAR文件。如果设置不当,可能会导致类找不到异常...

    Java命令行classpath的设置

    Java命令行classpath(类路径)的设置是Java开发过程中的一项基础操作,对于理解和运行Java程序至关重要。类路径是指定Java虚拟机(JVM)在执行Java程序时查找类文件的位置。正确配置类路径能确保JVM能够找到并加载...

    java Classpath全解

    对于初学者而言,理解 Java 中的 `classpath` 概念可能会感到有些困难。很多时候,程序在某个环境下可以正常运行,但换到另一个环境时却出现了问题,这往往与 `classpath` 设置不当有关。本文将详细介绍 `classpath`...

    13-Java语言(classpath环境变量)

    理解并正确设置classpath对于Java开发者至关重要,因为这直接影响到程序能否正常运行。 一、classpath的基本概念 classpath是一个环境变量,它告诉Java运行时系统在哪里可以找到应用程序所需的.class文件。这些文件...

    jdk的classpath路径和环境配置

    ### jdk的classpath路径和环境配置 在Java开发过程中,正确配置JDK(Java Development Kit)的环境变量是非常重要的步骤之一。...此外,对于初学者来说,理解这些基本概念有助于更好地掌握Java编程的基础。

    在linux和windows下动态设置classpath调用java类方法脚本代码

    在编程世界中,Java是一种广泛使用的跨平台语言,它的运行依赖于类路径(Classpath),这是一个指示Java虚拟机(JVM)查找.class文件的环境变量。本文将详细讲解如何在Linux和Windows操作系统下动态设置classpath以...

    eclipse下的.classpath文件和.project文件

    总的来说,理解和掌握.classpath和.project文件的使用,是提高Eclipse开发效率的关键。它们是Eclipse项目配置的核心,直接影响着代码的编译、运行和调试。因此,开发者需要定期检查和维护这两个文件,确保其内容与...

    Spring中使用classpath加载配置文件浅析

    理解Spring加载配置文件的方式非常重要,因为这关系到配置文件在应用中的有效加载。如果配置文件位置有误或路径指定不正确,Spring将无法找到所需的配置文件,从而导致应用启动失败或行为异常。 此外,配置文件的...

Global site tag (gtag.js) - Google Analytics