我在eclipse中制作了一个Java游戏,当我运行可执行文件.jar时,它启动,加载屏幕启动,但随后停止并挂起。我使用命令行运行它:“Java -jar filename.jar”,当加载屏幕停止时,它显示错误。这就是cmd显示的内容:
D:\>java -jar Speedrunner.jar
60Ticks, FPS:1637
javax.imageio.IIOException: Can't read input file!
at javax.imageio.ImageIO.read(Unknown Source)
at com.daves.first_Scroller.utils.BufferedImageLoader.loadImage(Buffered
ImageLoader.java:26)
at com.daves.first_Scroller.utils.ResourceLoader.loadImages(ResourceLoad
er.java:17)
at com.daves.first_Scroller.Game.load(Game.java:100)
at com.daves.first_Scroller.Game.tick(Game.java:160)
at com.daves.first_Scroller.Game.run(Game.java:228)
at java.lang.Thread.run(Unknown Source)
60Ticks, FPS:1744
java.io.IOException: Can't read .\resources\Fonts\tight_pixel.ttf
at java.awt.Font.createFont(Unknown Source)
at com.daves.first_Scroller.utils.Fonts.registerFont(Fonts.java:36)
at com.daves.first_Scroller.utils.Fonts.<init>(Fonts.java:28)
at com.daves.first_Scroller.utils.ResourceLoader.loadFonts(ResourceLoader.java:30)
at com.daves.first_Scroller.Game.load(Game.java:105)
at com.daves.first_Scroller.Game.tick(Game.java:160)
at com.daves.first_Scroller.Game.run(Game.java:228)
at java.lang.Thread.run(Unknown Source)
60Ticks, FPS:1761
Mon Mar 17 12:18:08 GMT 2014 INFO:Initialising sounds..
Exception in thread "Thread-2" java.lang.UnsatisfiedLinkError: no lwjgl in java.
library.path
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at org.lwjgl.Sys$1.run(Sys.java:73)
at java.security.AccessController.doPrivileged(Native Method)
at org.lwjgl.Sys.doLoadLibrary(Sys.java:66)
at org.lwjgl.Sys.loadLibrary(Sys.java:95)
at org.lwjgl.Sys.<clinit>(Sys.java:112)
at org.lwjgl.openal.AL.<clinit>(AL.java:59)
at org.newdawn.slick.openal.SoundStore$1.run(SoundStore.java:295)
at java.security.AccessController.doPrivileged(Native Method)
at org.newdawn.slick.openal.SoundStore.init(SoundStore.java:292)
at org.newdawn.slick.Sound.<init>(Sound.java:83)
at com.daves.first_Scroller.utils.AudioPlayer.addSound(AudioPlayer.java:29)
at com.daves.first_Scroller.utils.ResourceLoader.loadSounds(ResourceLoader.java:35)
at com.daves.first_Scroller.Game.load(Game.java:110)
at com.daves.first_Scroller.Game.tick(Game.java:160)
at com.daves.first_Scroller.Game.run(Game.java:228)
at java.lang.Thread.run(Unknown Source)
编辑 - 我查看了.jar文件,它包含了所需的所有字体和精灵,当我导出时,eclipse将所有需要的库打包到.jar中。
答案 0 :(得分:1)
好像是这个文件:
.\resources\Fonts\tight_pixel.ttf
你的罐子里没有。当您从Eclipse执行项目时,它可能在您的类路径中可用,因此您没有注意到它。
答案 1 :(得分:1)
你需要告诉java在哪里寻找LWJGL库。将以下内容添加到命令行:
-Djava.library.path=path/to/dir
来自文档:
我不断收到java.lang.UnsatisfiedLinkError:没有lwjgl 的java.library.path
这是因为未正确设置本机部分。添加一个 -Djava.library.path =命令行的路径/到/ dir或IDE中的VM选项,以便lwjgl能够找到包含该命令行的文件夹 原生文件。
外部链接:http://www.lwjgl.org/wiki/index.php?title=Downloading_and_Setting_Up_LWJGL
答案 2 :(得分:0)
似乎找不到。\ resources \ Fonts \ tight_pixel.ttf。那可能是因为在你从另一条路上跑过你的游戏之前。 (或者你没有将它包含在你的包中)
答案 3 :(得分:0)
.\resources\Fonts\tight_pixel.ttf
文件中缺少.jar
个文件。
那条线java.io.IOException: Can't read .\resources\Fonts\tight_pixel.ttf
告诉你的是什么。
要解决此问题,请将文件夹resources
集成到路径中。然后将其集成到导出的.jar
文件中。