返回顶部
首页 > 资讯 > 精选 >classpath详解
  • 464
分享到

classpath详解

2023-06-03 08:06:39 464人浏览 泡泡鱼
摘要

可通过对 JDK 工具使用 -classpath 选项(首选方法)或设置 CLASSPATH 环境变量来设置类路径。 [@more@]C:> jdkTool -classpath path2;path3... C:> set CLASSPA

可通过对 JDK 工具使用 -classpath 选项(首选方法)或设置 CLASSPATH 环境变量来设置类路径。 [@more@]C:> jdkTool -classpath path2;path3...
C:> set CLASSPATH=path2;path3...
每个 path 以文件名或目录结尾,该文件名或目录取决于将类路径设置成什么:
对于包含 .class 文件的 .zip 或 .jar 文件,路径以 .zip 或 .jar 文件名结尾。
对于未命名包中的 .class 文件,路径以包含 .class 文件的目录结尾。
对于已命名包中的 .class 文件,路径以包含“root”包(完整包名中的第一个包)的目录结尾。
用分号来分隔多个项目。使用 set 命令时,需要省略等号两边的空格(=)。其中 jdkTool 可以为 java、javac、javadoc,等等。有关详细列表,参见 JDK 开发工具
说明
类路径告诉 Java 应用程序去哪里查找第三方和自定义类 -- 即不是 Java 扩展或 Java 平台一部分的类。在 JDK 1.2 中,JVM 和其他 JDK 工具通过依次搜索平台库、库扩展和类路径来查找类(有关搜索策略的详细信息,参见如何查找类)。
多数应用程序的类库都会充分利用扩展机制。因此,只有想要加载某个类库 (a) 未位于当前目录或其分枝包中 且 (b) 未位于扩展机制所指定的位置时,才需设置类路径。

如果用户是从旧版本 JDK 升级而来,则启动设置可能包括不再需要的 CLASSPATH 设置。这时应该删除任何非应用程序特定的设置。有些使用 Java 虚拟机的第三方应用程序可能修改 CLASSPATH 环境变量以包括它们使用的类库。这种设置可以保留。

可通过在调用 JVM 或其他 JDK 工具时使用 Java 工具的 -classpath 选项改变类路径(例如: java -classpath ...)。这是改变类路径的首选方法。还可通过使用 CLASSPATH 环境变量改变类路径。

注意:JDK 1.2 缺省类路径是当前目录。设置 CLASSPATH 变量或使用 -classpath 命令行开关将覆盖缺省值,因而如果想要在搜索路径中包括当前目录,则必须在新设置中包括“.”。
类可以存储在目录(文件夹)或归档文件(例如 classes.zip 或 classes.jar)中。有关归档文件的详细信息和类路径的工作原理,参见本文档最后的理解类路径和包名。

重要说明:JDK 旧版本在缺省类路径中还包括 /classes 项。该目录仅供 JDK 使用,且不用于应用程序类。应用程序类应该放置在 JDK 外部的目录。这样,安装新 JDK 时不必需要重新安装应用程序库。为了与旧版本的兼容性,使用 /classes 目录作为类库的应用程序在当前版本中仍能运行,但不能保证在以后的版本中它们还能运行。
使用 Java 工具的 -classpath 选项
Java 工具 java、jdb、javac 和 javah 具有 -classpath 选项,在工具运行时它将取代缺省类路径或由 CLASSPATH 环境变量所指定的类路径。这是改变类路径设置的推荐方法,因为这样每个应用程序可具有它所需的类路径而又不会干扰其他应用程序。
运行时工具 java 和 jdb 还具有 -cp 选项。该选项是 -classpath 的缩写。

对于非常特殊的情况,java 和 javac 都具有开关,使得可改变它们使用的路径以查找它们自己的类库。但是,绝大多数用户从来都不会用到这些开关。

使用 CLASSPATH 环境变量
如前一节中所述,一般用户将想要使用 -classpath 命令行选项。本节将介绍如何设置 CLASSPATH 环境变量或清除以前安装遗留下的设置。
设置 CLASSPATH
在 DOS 提示符下,可用 set 命令修改 CLASSPATH 环境变量。其格式为:
set CLASSPATH=path2;path3 ...
路径应该以指定驱动器的字母开头,例如 C:...。这样,在偶然切换到不同驱动器时仍可找到类(例如,如果路径项以 ... 开头,并且当前位于驱动器 D: 上,则所需的类将在 D: 而不是 C: 驱动器上找)。
清除 CLASSPATH
如果 CLASSPATH 环境变量被设置成不正确的值,或启动文件或脚本程序设置了不正确路径,则可通过使用下列命令清除 CLASSPATH:
C:> set CLASSPATH=
该命令仅清除当前会话的 CLASSPATH。要确保在以后的会话中具有正确的 CLASSPATH 设置,则应该删除或修改启动设置。
更改启动设置
如果在系统启动时设置 CLASSPATH 变量,则查找它的位置取决于所使用的操作系统
操作系统 方法
windows 98 和
Windows 95 检查 autoexec.bat 文件中的 set 命令。
Windows NT 启动“控制面板”,选择“系统”,单击“环境”选项卡,并在“用户变量”部分中,检查 CLASSPATH 变量。

理解类路径和包名
Java 类被组织成包,而这些包被映射到文件系统中的目录。但是与文件系统不同的是,无论何时指定包名,都应指定完整包名 -- 永远不要仅指定它的一部分。例如,java.awt.Button 的包名总是应指定为 java.awt。
例如,假定想要 Java 运行环境在包 utility.myapp 中查找名为 Cool.class 的类。如果该目录的路径为 C:javaMyClassesutilitymyapp,则应该将类路径设置成包含 C:javaMyClasses。

要运行该应用程序,可使用下述 JVM 命令:

C:> java -classpath C:javaMyClasses utility.myapp.Cool
当该应用程序运行时,JVM 使用类路径设置查找在 utility.myapp 包中定义的任何其他类。
注意:应在命令中指定完整包名。例如,设置类路径包含 C:javaMyClassesutility 并使用命令 java myapp.Cool 是不可能的,因为这找不到该类。

(您可能想知道用什么定义类的包名。答案是:包名是类的一部分,并且不能修改,除非重新编译该类。)

注意:包规范机制一个有趣的结果是,属于相同包的多个文件实际上可存在于不同的目录中。对于每个类,包名都是相同的,但是每个文件的路径可从类路径中的不同目录开始。
文件夹和归档文件
当类存储在目录(文件夹)中时,例如 c:javaMyClassesutilitymyapp,则类路径项指向包含包名第一个元素的目录(在这里为 C:javaMyClasses,因为包名是 utility.myapp)。
但是当类存储在归档文件(.zip 或 .jar 文件)中时,类路径项则是该 .zip 或 .jar 文件的路径。例如,要使用位于 .jar 文件中的类库,则命令应该类似下述形式:

java -classpath C:javaMyClassesmyclasses.jar utility.myapp.Cool
多重指定
要在目录 C:javaMyClasses 和 C:javaOtherClasses 中查找类文件,则可将类路径设置为:
java -classpath C:javaMyClasses;C:javaOtherClasses ...
注意两个路径之间用分号分隔。
指定次序
指定多个类路径项的次序是相当重要的。Java 解释器将按照目录在类路径变量中的次序在各个目录中查找类。在上例中,Java 解释器首先在目录 C:javaMyClasses 中查找需要的类。只有当它在该目录中没有找到该类时,解释器才能到 C:javaOtherClasses 目录中查找。

--结束END--

本文标题: classpath详解

本文链接: https://lsjlt.com/news/233640.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • classpath详解
    可通过对 JDK 工具使用 -classpath 选项(首选方法)或设置 CLASSPATH 环境变量来设置类路径。 [@more@]C:> jdkTool -classpath path2;path3... C:> set CLASSPA...
    99+
    2023-06-03
  • classpath:和classpath*:的区别
    1、classpath是什么 classpath是指编译之后的target中的classes目录,该目录中存放的内容和源程序中对应的例子如下: 2、classpath:和classpath*:的区别 classpath: 只会到你的tar...
    99+
    2023-08-30
    springboot
  • 如何理解CLASSPATH
    这篇文章主要介绍“如何理解CLASSPATH”,在日常操作中,相信很多人在如何理解CLASSPATH问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何理解CLASSPATH”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-17
  • java Classpath全解(转)
    java Classpath全解(转)[@more@]java 的新入门者对classpath往往比较困惑,为何在开发环境中能运行的东东出去就不好,或在外面运行的东东挺溜的进了开发环境就死菜,烦死了!看完俺这篇文章包您万事无忧(夸张点吧) ...
    99+
    2023-06-03
  • 详解eclipse项目中的.classpath文件原理
    目录1 前言2 作用3 .classpath内容3.1 kind="src"3.2 kind="output"3.3 kind="con"3.3.1 JRE配置3.3.2 Serve...
    99+
    2024-04-02
  • java项目中classpath的理解
    在java项目中,你一定碰到过classpath,通常情况下,我们是用它来指定配置/资源文件的路径。在刚开始学习的时候,自己也糊里糊涂,但是现在,是时候弄清楚它到底是指什么了。 顾名...
    99+
    2024-04-02
  • Java中classpath讲解及使用方式
    笔者之前对于classpath都没有什么深入的研究,之前的项目打包jar包都是按照网上的教程自己照着葫芦画瓢。但是因为最近碰到一些关于这方面的知识,因此索性觉得要好好补充一下这方面的...
    99+
    2024-04-02
  • 如何深入探讨、理解Java的CLASSPATH
    这篇文章给大家介绍如何深入探讨、理解Java的CLASSPATH,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。从表面上看,Java的classpath(类路径)很简单,但一直以来它都是一个产生问题和混乱的根源。本文介绍...
    99+
    2023-06-03
  • Java中classpath怎么用
    这篇文章给大家分享的是有关Java中classpath怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。概要classpath是Java运行时环境搜索类和其他资源文件(比如jar\zip等资源)的路径。可以通过...
    99+
    2023-06-22
  • Java classpath配置攻略
    classpath java中的两个常用命令:javac +文件名.java 编译文件 ;java +文件名无后缀 运行编译的class文件 注意:当默认情况下,运行某个字节码文件时在当前目录下找,如...
    99+
    2023-09-26
    java 开发语言
  • 解读classpath读取resources目录下的文件
    目录classpath读取resources目录下文件1、class.getResource()2、getClassLoader().getResource()4、批量读取5、如果配...
    99+
    2023-01-12
    classpath resources 读取resources目录下文件 classpath读取resources下文件
  • classpath类路径是什么
    Spring Boot 一、简介 classpath类路径在 Spring Boot 中既指程序在打包前的/java/目录加上/resource目录,也指程序在打包后生成的/classes/目录。两者实际上指的是同一个目录,里面包含的...
    99+
    2023-08-16
    java spring spring boot
  • java中的classpath指向什么
    这篇文章主要介绍java中的classpath指向什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!今天在项目里看到好多地方都用到了classpath,并且自己对calsspath到底指向哪里还不是很清楚,所以就在网...
    99+
    2023-06-22
  • 解决Correct the classpath of your application so that it contains compatible versions
    springboot启动失败报错Correct the classpath of your application so that it contains compatible versions of...
    99+
    2023-09-13
    spring boot spring java
  • java项目中classpath指向哪里
    今天在项目里看到好多地方都用到了classpath,并且自己对calsspath到底指向哪里还不是很清楚,所以就在网上百度了一下! 上面图片的意思简单来说,就是classpat...
    99+
    2024-04-02
  • java的Classpath知识点有哪些
    本篇内容主要讲解“java的Classpath知识点有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“java的Classpath知识点有哪些”吧!java的优点就是他是一个自动支持网络功能的...
    99+
    2023-06-03
  • Java的Classpath工具怎么使用
    这篇文章主要介绍“Java的Classpath工具怎么使用”,在日常操作中,相信很多人在Java的Classpath工具怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java的Classpath工具怎...
    99+
    2023-06-03
  • SpringBoot 如何读取classpath下的文件
    SpringBoot 读取classpath下文件 开发过程中,必不可少的需要读取文件,对于打包方式的不同,还会存在一些坑,比如以jar包方式部署时,文件都存在于jar包中,某些读取...
    99+
    2024-04-02
  • android#could not resolve all artifacts for configuration ':classpath'#
    今天编译项目时突然报错。本以为是网络导致的,但网络正常,打开报错网址,相关jar包还能正常下载,这就奇怪了。经排查,原来是gradle插件版本不...
    99+
    2022-06-06
    NOT ALL for Android
  • Java项目中classpath类路径是什么
    目录一、简介二、获取classpath路径三、获取项目路径classpath 和 classpath* 区别: 总结Spring Boot 一、简介 classpath类路...
    99+
    2023-02-23
    classpath类路径 classpath在哪 查看classpath
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作