URL base = this.getClass().getResource("")
.FileTest.class.getResource("")
得到的是当前类FileTest.class文件的URI目录。不包括自己!
如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/com/test/
2.FileTest.class.getResource("/")
得到的是当前的classpath的绝对URI路径。
如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/
3.Thread.currentThread().getContextClassLoader().getResource("")
得到的也是当前ClassPath的绝对URI路径。
如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/
4.FileTest.class.getClassLoader().getResource("")
得到的也是当前ClassPath的绝对URI路径。
如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/
5.ClassLoader.getSystemResource("")
得到的也是当前ClassPath的绝对URI路径。
如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/
我推荐使用Thread.currentThread().getContextClassLoader().getResource("")来得到当前的classpath的绝对路径的URI表示法。
在Web应用程序中,我们一般通过ServletContext.getRealPath("/")方法得到Web应用程序的根目录的绝对路径。这样,我们只需要提供相对于Web应用程序根目录的路径,就可以构建出定位资源的绝对路径。
注意点:
1.尽量不要使用相对于System.getProperty("user.dir")当前用户目录的相对路径。这是一颗定时弹,随时可能要你的命。
2.尽量使用URI形式的绝对路径资源。它可以很容易的转变为URI,URL,File对象。
3.尽量使用相对classpath的相对路径。不要使用绝对路径。使用上面ClassLoaderUtil类的public static URL getExtendResource(String relativePath)方法已经能够使用相对于classpath的相对路径定位所有位置的资源。
4.绝对不要使用硬编码的绝对路径。因为,我们完全可以使用ClassLoader类的getResource("")方法得到当前classpath的绝对路径。
使用硬编码的绝对路径是完全没有必要的!它一定会让你死的很难看!程序将无法移植!
如果你一定要指定一个绝对路径,那么使用配置文件,也比硬编码要好得多!
当然,我还是推荐你使用程序得到classpath的绝对路径来拼资源的绝对路径.
引用自http://kongjian.baidu.com/df_world/blog/item/5dc6f0dc6aeff2abcc116691.html
分享到:
相关推荐
然而,描述中提到的重点是获取CLASSPATH之外的路径。CLASSPATH是Java查找类和资源的默认路径,但有时我们需要加载不在这个路径中的资源。以下是一些常用的方法: 1. 使用`this.getClass().getResource("")`:这种...
集成这个SDK到Java项目中,首先需要将其解压缩并导入到项目的类路径(classpath)中。在Java环境中,类路径是Java虚拟机寻找类文件的路径,确保SDK的JAR文件或者类文件能够被Java编译器和运行时环境找到。在现代的...
这些驱动文件需要被添加到Java的类路径(classpath)中,这样Java虚拟机才能找到并使用它们。在Windows系统中,这可以通过修改系统环境变量`classpath`和`path`来实现。 代码示例展示了如何建立JDBC连接的步骤: 1...
在此例中,除了原有的路径之外,还添加了Tomcat和JDK的相关路径。 ```plaintext D:\myweb\Tomcat5\bin; D:\myweb\jdk1.4; D:\myweb\jdk1.4\bin; C:\Program Files\MySQL\MySQL Server 4.1\bin ``` - **...
安装完毕后,开发者需要更新Hibernate配置文件,指定p6spy驱动作为新的JDBC驱动,并将spy.properties文件添加到CLASSPATH环境变量中,以确保p6spy能够自动记录日志。 一旦安装并配置完成,IronTrack SQL能够实时...
`JAVA_HOME`指向JDK的安装目录,`PATH`确保系统可以在任何目录下执行Java命令,而`CLASSPATH`则指定了类搜索路径,用于加载类库。 JDK1.6包含了Java编译器`javac`,它将源代码编译成字节码,这是Java程序能在不同...
Java语言之所以在网络编程方面得到广泛应用,正是因为它具备这些特性。Java平台根据其用途被分为三个主要版本:JavaSE(标准版),适用于桌面和数据库开发;JavaEE(企业版),为企业级开发提供广泛技术;JavaME...
- **10.2 JMS客户端**:说明了配置JMS客户端类路径的方法。 - **10.3 需要JNDI的JMS客户端**:特别强调了需要使用JNDI的JMS客户端的配置细节。 #### 八、例子 - **11.1 JMS例子** - **11.1.1 应用层的失效备援...
- **Application ClassLoader**:也称为系统类加载器,由`sun.misc.Launcher$AppClassLoader`实现,负责加载用户类路径(ClassPath)所指定的类。 #### 三、编译型类加载器 除了标准的类加载器之外,还可以创建自定义...
此安装程序会引导用户完成JDK的安装过程,包括设置安装路径、配置环境变量(如JAVA_HOME、PATH和CLASSPATH)等,确保系统能够识别和运行Java程序。 2. "使用说明.htm":这很可能是JDK1.6的一份用户指南或快速入门...
"ant-tasks-2.1.3.jar"是Ant的扩展任务库,包含了除Ant核心任务之外的一些额外功能。这些任务可能由社区成员贡献,或者是针对特定需求开发的,例如处理特定的文件格式或与特定的应用服务器进行交互。在Ant的构建脚本...
- **Application ClassLoader**:加载应用程序类路径(`classpath`)中的类。 - **Web-Inf ClassLoader**:加载部署在Web应用中的类文件,通常用于Servlet容器中。 每种类加载器都有其特定的职责和加载顺序,这种层次...
在Java项目中,你需要将此jar文件添加到项目的类路径(classpath)中,以便能够使用JMF的功能。 3. `jmf.jar_customizer.jar`: 这个文件可能是一个定制工具,允许用户根据自己的需求配置JMF。例如,它可能用于添加...
要使用Log4j,首先需要从官方站点下载相应的.jar文件,并将其添加到项目的类路径(CLASSPATH)中。 1. **下载地址**:访问[http://jakarta.apache.org/log4j/docs/download.html]...
开发者可以通过将这个JAR添加到类路径(classpath)来使用Apache Ant的功能。 在处理ZipOutputStream时,除了设置正确的编码之外,还需要了解其他一些重要概念,例如: 1. **ZipEntry**:表示压缩文件中的一个条目...
这通常意味着需要检查项目的类路径(classpath),确保所有必需的库都已经被正确添加。 具体到使用json-lib的JSONSerializer类来转换Map对象到JSON字符串,代码实现非常直接。假设我们有一个Map对象,包含了一些...
3. **指定客户端安装路径**:继续按照提示指定客户端的安装路径,其他选项保持默认设置。 4. **等待安装完成**:客户端安装过程中无需额外的操作,只需耐心等待安装完成即可。 #### 四、卸载Oracle 10g 1. **停止...
要在JBoss上配置Oracle数据库,首先需要将Oracle的JDBC驱动程序添加到类路径(ClassPath)中。具体步骤如下: 1. **添加Oracle JDBC驱动**:将Oracle JDBC驱动程序复制到`server/default/lib`目录下。 2. **配置事务...
将错误页面映射到Spring MVC之外 28.1.12.Spring HATEOAS 28.1.13.CORS支持 28.2.“Spring WebFlux框架” 28.2.1.Spring WebFlux自动配置 28.2.2.带有HttpMessageReaders和HttpMessageWriters的...