一、
classes目录就是所谓的
classpath
ClassLoader 提供了两个方法用于从装载的类路径中取得资源:
public URL getResource (String name);
public InputStream getResourceAsStream (String name);
这里name是资源的类路径,它是相对与“/”根路径下的位置。getResource得到的是一个URL对象来定位资源,而getResourceAsStream取得该资源输入流的引用保证程序可以从正确的位置抽取数据。
但是真正使用的不是ClassLoader的这两个方法,而是Class的 getResource和getResourceAsStream方法,因为Class对象可以从你的类得到(如YourClass.class或 YourClass.getClass()),而ClassLoader则需要再调用一次YourClass.getClassLoader()方法,不过根据JDK文档的说法,Class对象的这两个方法其实是“委托”(delegate)给装载它的ClassLoader来做的,所以只需要使用 Class对象的这两个方法就可以了。
因此,直接调用 this.getClass().getResourceAsStream(String name) ;获取流,静态化方法中则使用ClassLoader.getSystemResourceAsStream (String name) ; 。
下面是一些得到classpath和当前类的绝对路径的一些方法。你可能需要使用其中的一些方法来得到你需要的资源的绝对路径。
1.this.getClass().getResource("")
得到的是当前类class文件的URI目录。不包括自己!
如:file:/D:/workspace/TMC/bin/com/test/
2.this.getClass().getResource("/")
得到的是当前的classpath的绝对URI路径 。
如:file:/D:/workspace/TMC/classes/
3.this.getClass() .getClassLoader().getResource("")
得到的也是当前ClassPath的绝对URI路径 。
如:file:/D:/workspace/TMC/classes/
4.ClassLoader.getSystemResource("")
得到的也是当前ClassPath的绝对URI路径 。
如:file:/D:/workspace/TMC/classes/
5.Thread.currentThread().getContextClassLoader ().getResource("")
得到的也是当前ClassPath的绝对URI路径 。
如:file:/D:/workspace/TMC/classes/
---------------------------------------------------------------------------------
二、开发项目目录与部署到tomcat目录对应关系,及注意事项。
总结:
(1). 开发项目WebRoot目录下的文件(一般是前端文件和部分配置文件),部署后,全部都在项目的根目录下。
(2). 开发项目类路径,首先按功能分类,创建对应的文件夹(可以创建很多个,如:文件夹名:src/pay, src/util,
src/webservice等), 再在文件夹里创建包路径。说明:文件夹与部署后的项目没任何关系,只是为了方便功能开发与目录管理。
真正部署到tomcat里的是包路径(如:cn.com.hotel.dao, cn.com.ticket.impl)。这些包路径统一放在\WEB-INF\classes下面。
(3). 包路径进行了重合,若某级的包名称不同,则分支出对应的文件夹。
(4). 若在src目录下,没有包路径,相应的文件,部署后直接放在\WEB-INF\classes下面。
(5). jar包,虽然放在lib文件夹里,但实际上那些类可以直接引用的。比如com.test.ABC,就可以直接这么写,仿佛也在classes下面一样。所以jar包无论放在哪个目录下都一样的。
分享到:
相关推荐
本文将详细解析如何在Java中获取`CLASSPATH`路径,并介绍相关的方法和技术。 首先,`ClassLoader`类是Java中负责加载类和资源的核心组件。它提供了两个方法来获取资源: 1. `public URL getResource(String name)`...
Java 项目中获取路径详解 在 Java 项目中,获取路径是非常重要的,因为它关系到项目的正确运行。特别是在 Java Web 项目中,获取路径变得更加复杂。下面我们将详细讨论 Java 项目中获取路径的方法和注意事项。 ...
### Java 文件路径获取方法详解 #### 一、引言 在Java开发中,经常会遇到需要获取文件路径的情况,尤其是在处理配置文件、图片等资源时。本文将详细介绍Java中获取文件路径的各种方法及其应用场景,帮助开发者更好...
java实现 获取指定路径下 指定格式 的所有文件
在Java编程语言中,了解如何获取类路径(classpath)是至关重要的,因为类路径决定了Java虚拟机(JVM)在运行时如何查找和加载类。本文将详细介绍在Java中获取类路径的几种常见方法,以供开发者参考。 首先,类路径...
在Java中,获取路径是操作文件和目录时的基本需求。正确地获取和使用路径对于文件的创建、读取、写入等操作至关重要。本篇总结将从多个角度介绍Java中获取路径的方法。 ### 1. 获取系统属性路径 Java提供了一种...
类加载器(`ClassLoader`)负责将编译后的`.class`文件加载到Java虚拟机(JVM)中执行,而类路径(`ClassPath`)则是指明了这些`.class`文件的位置。本文主要围绕Java类加载器和类路径展开讨论,以加深对Java运行时...
在Java编程中,获取Java路径以及CLASSPATH外部的路径是非常关键的操作,尤其当需要加载类、资源文件或进行系统级操作时。这篇文章主要探讨了几种获取这些路径的方法。 首先,我们来看一下如何获取Java路径。Java...
- **定义**:`classpath`是Java虚拟机(JVM)用来查找用户自定义类和资源的路径集合。 - **作用**:当Java程序运行时,JVM会根据`classpath`来定位所需的类文件(`.class`文件)和其他资源文件。如果没有正确配置`...
1. 相对于classpath的相对路径:如在`file:/D:/java/eclipse32/workspace/jbpmtest3/bin/`这个classpath路径下的相对路径,这意味着你需要结合classpath的基路径来解析资源的实际位置。 2. 相对于当前用户目录的相对...
1. **ClassPath路径**:这是Java虚拟机启动时加载类库(class or lib)的路径,也是加载项目自定义类的位置。 2. **WebRoot路径**:这是Web应用的根目录,包含了所有的静态资源、JSP页面以及Web-INF目录下的配置文件和...
为了更有效地使用路径,下面列出了一些获取当前classpath和类文件绝对路径的方法: 1. **使用 `FileTest.class.getResource("")`**:这种方法可以获取当前类 `FileTest.class` 文件的URI目录,但不包含自身。例如:...
浅谈web项目读取classpath路径下面的文件 本文主要介绍了web项目读取classpath路径下面的文件,涵盖了两种类型的web项目:...关键词:classpath 路径,java classpath 路径,获取classpath路径,maven classpath 路径
### Java中File的相对路径与绝对路径总结 在Java Web开发过程中,经常需要处理文件的读写操作,尤其是在运行时获取配置文件、动态加载对象等情况。对于这些需求,理解和掌握文件的相对路径与绝对路径至关重要。 ##...
- `java.io.File`类是处理文件和目录的主要工具,提供了创建、删除、重命名文件的方法,并且可以获取文件的绝对路径和父路径。 - `java.nio.file.Paths`和`java.nio.file.Path`类在Java 7引入,提供更现代和灵活的...
首先,我们来了解一下Java中的类路径(Classpath)。类路径是Java虚拟机(JVM)寻找类文件的路径集合,它决定了哪些目录和.jar文件被JVM用于加载类。默认情况下,Java会搜索当前目录("."),但通常我们需要自定义类...
在Java编程环境中,路径(Path)和类路径(Classpath)是两个至关重要的概念,它们对程序的编译和运行起着决定性的作用。本文将深入解析这两个概念,并结合源码和工具,帮助你理解它们的工作原理。 首先,让我们来...
通过获取当前`classpath`的`URI`形式的绝对路径,构建了相对路径的`URI`形式的绝对路径。尽管这是一种猜想,但可以确认的是,Java本质上只能使用绝对路径来查找资源,所有相对路径的方法本质上都是API帮助构建了绝对...