0

我一直在研究他们在 wiki 的教程部分提供的 Asteroids Game 示例代码,但遇到了一个奇怪的错误。

该代码在我的开发环境 Eclipse 中运行良好。游戏正常运行并正常退出。

我在文件菜单中完成导出过程并创建一个可执行 jar,当使用此批处理文件代码运行时

java -Djava.library.path=D:\Tools\lwjgl-2.8.4\lwjgl-2.8.4\native\windows -jar SpaceInvaders.jar

尝试加载 wav 文件时启动显示并失败。给出这个错误。

Exception in thread "main" java.lang.NullPointerException

我追踪到代码中发生这种情况的位置,它位于加载 wav 的位置。显然在环境之外它无法找到文件,即使它们就在代码旁边?我所有的 wav 文件和 gif 文件现在都与 java 类文件位于同一目录中,因此从代码中调用它们看起来像这样:

http://i.imgur.com/2gnN1.png

在谷歌上搜索东西它告诉我将它们压缩到一个单独的文件中,然后导入到类文件夹并从那里引用。我想知道是否有办法将文件保存在我的主 jar 文件中,而不必创建一个单独的实体。

感谢您的回复!如果需要更多信息,请告诉我。

4

1 回答 1

1

您可能需要考虑使用更高级别的 API,例如 paulscode 中的 3d soundsystem。SoundSystem 可以从 jar 内部读取(如您所问),如果当前硬件不支持 LWJGL 声音,则自动切换到 java 声音。

于 2012-08-06T18:52:25.503 回答