Java 类路径指的是哪里?

MadYanYan 2017-10-22 09:06:11



如图  在使用Spring框架时
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
ClassPathXmlApplicationContext 表示是从类路径下加载applicationContext.xml配置文件
搞不清楚这里的类路径是指哪里?(在环境变量中配置的 class path 变量和 这个类路径有什么联系吗?)
applicationContext.xml文件在硬盘的路径是 D:\JAVA/workplace/Spring/src/applicationContext.xml  这是类路径吗?

那在环境变量中配置的classpath  Java_Home  Path 又是做什么的呢?  这里的classpath指的不是类路径吗? 
...全文
4568 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ZHOU西口 2017-10-23
  • 打赏
  • 举报
回复 1
楼主,想想以下几个问题: 1、加载application.xml的时候,jvm为我们做了什么? 2、build工程的时候,jvm为我们做了什么? 所谓类路径,就是jvm依靠编译环境,去找正在或即将加载的class,然后去执行它并返回结果。
maradona1984 2017-10-23
  • 打赏
  • 举报
回复
不要想太多 类路径大概就是java类加载的目录,比如你的applicationContext.xml ,他的加载目录就是你的输出目录classes 假如某个文件在jar里,你的类路径就是这个jar(这个需要配置的,在eclipse里eclipse会帮你做这些事情) 环境变量的类路径你可以理解为那些String等jre自带的类所在jar的目录 你可以尝试点开eclipse的run configuation,随便点到你执行的java application,就有class path一个选项卡,这就是eclipse替你指定的类路径,你的class都会从这些目录的class/jar中的class加载 一个class被加载,你必须告诉jvm这个class在哪,找不到就会抛出异常 建议看看类加载器相关
  • 打赏
  • 举报
回复 4
WEB-INF/classes,lib才是classpath,我指的是web项目 你说的classpath是资源入口,外部不可访问; 另外你说的环境变量 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 这样的语句,它是如何运作的?哦,其实道理都差不多!搜索INCLUDE路径,检视文件!当你自己开发一个package时,然后想要用这个package中的类;自然,你也得把这个package所在的目录设置到CLASSPATH中去!CLASSPATH的设定,对JAVA的初学者而言是一件棘手的事。所以Sun让JAVA2的JDK更聪明一些。你会发现,在你安装之后,即使完全没有设定CLASSPATH,你仍然能够编译基本的JAVA程序,并且加以执行

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧