传递给的字符串值
SomeClass.class.getResource()
(以及
getResourceAsStream
当然)有两种“模式”。
-
它看起来是“相对于”包装的
SomeClass
,这意味着,如果你要求。
"img/load.png"
和
某个阶级
在包裹里
com.foo
,你真的在要求
"/com/foo/img/load.png"
-这是
相对模式
.
-
您想要进入绝对模式:您想要提供
SomeClass.class
JVM用来加载某个类的代码的文件,然后在同一个位置查找,
/img/load.png
从那里开始。换句话说,如果
某个阶级
的代码是通过从jar文件条目加载字节码获得的
/com/foo/SomeClass.class
归档
myapp.jar
,您希望通过加载jar文件条目获得数据
/img/load。巴布亚新几内亚
来自jarfile
我的应用。罐子
.你可以这么做-只需从斜线开始。
考虑到你的数字。txt文件似乎位于
resources
,这将强烈建议您传递给
.getResourceAsStream()
应该是
"/numbers.txt"
.注意前面的斜杠。
NB:不是
相当地
一条小路。
..
这样做是行不通的。奇怪的是,
com.foo.numbers.txt
如果jar文件包含
/com/foo/numbers.txt
.