Java的路径问题。。

本文深入探讨了Java中获取类路径、资源的方法,包括如何使用Thread.currentThread().getContextClassLoader()、PathTest.class.getClassLoader().getResource()、ClassLoader.getSystemResource()及PathTest.class.getResource()等方法,并详细解释了getResourceAsStream()方法的使用与注意事项。

一。一些取path的方法

 

//eclipse Test项目下面的测试类

package path;

import java.io.File;

public class PathTest {
	public static void main(String[] args) throws Exception {
		//file:/E:/java/workspace/test/bin/
		System.out.println(Thread.currentThread().getContextClassLoader()
				.getResource(""));
		System.out.println(PathTest.class.getClassLoader().getResource(""));
		System.out.println(ClassLoader.getSystemResource(""));
		System.out.println(PathTest.class.getResource("/"));
		
		//file:/E:/java/workspace/test/bin/path/
		System.out.println(PathTest.class.getResource(""));

		//E:\java\workspace\test
		System.out.println(new File("").getAbsolutePath());
		System.out.println(System.getProperty("user.dir"));
	}
}
 

二。getResourceAsStream() 本方法使用相对classpath的根路径。

引用来自:http://blog.youkuaiyun.com/yangm1203/archive/2007/07/11/1685839.aspx

 

 

Class.getResourceAsStream() ClassLoader的getResourceAsStream()
注意两点:

1,用Class.getResourceAsStream() 时,路径应该是以"/"开头的,如:
 mypackage.Hello.class.getResourceAsStream("/ config/config.ini");

 

2,如果直接用ClassLoader的getResourceAsStream() 不用以"/"开头.如,
  mypackage.Hello.class.getResourceAsStream("config/config.ini ");

!!注意文件放置的位置,应该放在classpath下 .

在eclipse项目我们通常将java代码和config配置文件分目录放,如下图

那么config目录下的config.ini是不是"config/config.ini "呢? 答案是NO!

因为项目编译后,config.ini会放在classpath的根目录,而不是config目录。

 

  • 大小: 3.7 KB
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值