首先,我知道Stack overflow(以及任何主管的类似论坛的网站)政策是“首先搜索,最后问”,在做作业时,我搜索了各种来源,以找到解决我问题的办法。 也就是说,我找不到合适的答案,别无选择,只能亲自问这个问题。
我有一些温和的编程技巧,特别是在爪哇语方面。 我正与默认的 Java SE JDK 进行二维游戏。 更具体地说, JDK 7u4。 在这个项目中, 我们有一个管理大多数 I/ O 操作的类。 其中一种方法返回到文件路径 :
public static URL load(String resource) {
return ZM.class.getResource(resource);
}
现在,在Netbeans 上运行项目时,这一方法效果很好(第7.1版),然而,在建设和清理项目时,所产生的.jar 文件似乎与它的创建者不一致。在命令行运行.jar时,JVM发现一个 NullPointerException
。似乎无法在.jar 内阅读该文件。根据程序员的本能,我开始调试项目。我首先试图检查 load
方法是否是错误的成员。我做了一些测试,并取得了一些有趣的结果:
在Netbeans 上运行应用程序时, 当使用“ ZM. class” 和“ ZM. class” 作为方法参数时, 它返回 :
/D:/Projects/GeometryZombiesMayhem/build/classes/geometryzombiesmayhem/ZM.class
但当它从.jar 文档中运行时, 它返回 :
file:/D:/Projects/GeometryZombiesMayhem/dist/GeometryZombiesMayhem.jar!/geometryzombiesmayhem/ZM.class
当然,我试图从它中删除初始的 file:
字符串。 没有效果。 然后,我尝试从 .jar! > <...]
中删除感叹标记! [...] <...] 。 又一次, 没有。 我尝试从路径上移除所有可能的变异。 没有运气 。
对照自己的. jar 文件测试该方法的工作正常。 现在, 当我试图访问文件内部时, 它不允许我进入。 在这个项目的早期版本中, 它的工作效果很好。 我不太确定正在发生什么。 欢迎任何帮助 。
Thank you in advance, Renato