我有一个 jar (foo.jar),其根目录中有一个文件 - 1.txt。
我尝试运行以下命令 -
MyTestClass.class.getClassLoader().getResource("/1.txt");
jar (foo.jar) 是我在类路径中的所有内容。
我预计这会起作用,因为“/”应该引导我到达类路径/jar 的根(根据我在 stackoverflow 中读到的其他答案)。这将返回空值。
但似乎领先的“/”并没有按我的预期工作。
我想通了并且成功了without这 / -
MyTestClass.class.getClassLoader().getResource("1.txt") -->
jar:文件:/tmp/myjar.jar!/1.txt
getResource中前导“/”的作用/目的是什么?
我希望这能起作用,因为“/”应该引导我找到根
类路径/jar 的(根据我读过的其他答案)
堆栈溢出)。
前导斜杠仅适用于class.getResource()
覆盖其默认行为。没有前导斜线概念class.getClassLoader().getResource()
,所以它总是返回null
。 IMO 在这种情况下它应该抛出异常,但幸运的是这在 Guava 中得到了解决Resources.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)