从eclipse导出我的Java游戏,运行时出错

时间:2014-03-17 12:29:21

标签: java eclipse

我在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中。

4 个答案:

答案 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文件中。