java classpath详解_java classpath 详解

项目遇到问题:配置文件未被加载

知识点:

关于IDEA中classpath详解:

在最上面一栏可以看到这里是Source标签中的详细信息,在右边可以

看到项目里面目录的类型,有Source Folders、Resource Folders等

等,这里指的是Source Folders表示的都是代码源文件目录,生成的

class文件会输出到target->classess文件夹中,但是里面的源文件不会

复制到target->classes文件夹中,Test Source Folders表示的都是测试

代码源文件目录,生成的class文件同样会输出到target->classess文件

夹中,并且里面的源文件不会复制到target->classes文件夹中,而

Recource Folders表示的都是资源文件目录,这些目录里面的文件会在

代码编译运行被直接复制到target->classess文件夹中。可以这么讲,

target->classes即为classpath,任何我们需要在classpath前缀中获取

的资源都必须在target->classes文件夹中找到,否则将出现

java.io.FileNotFoundException的错误信息。

参考:

http://blog.csdn.net/skyebefreeman/article/details/56495637

Class.getResourceAsStream()与ClassLoader.getResourceAsStream()的区别

相同:都是加载资源文件

不同:

Class.getResourceAsStream() 会指定要加载的资源路径与当前类所在包的路径一致。

例如你写了一个MyTest类在包com.test.mycode 下,那么MyTest.class.getResourceAsStream("name") 会在com.test.mycode包下查找相应的资源。

如果这个name是以 '/' 开头的,那么就会从classpath的根路径下开始查找。

ClassLoader.getResourceAsStream() 无论要查找的资源前面是否带'/' 都会从classpath的根路径下查找。

所以: MyTest.getClassLoader().getResourceAsStream("name") 和

MyTest.getClassLoader().getResourceAsStream("name") 的效果是一样的。

参考:https://www.cnblogs.com/jr1260/p/6473837.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值