Java应用程序可以很好地从netbeans中工作,但不能从命令行或.jar文件中工作



我使用netbeans创建了一个应用程序,当我从netbeans运行它时,它运行得非常好。但是当我尝试从命令行或可执行的.jar文件运行它时,它不工作!在我看来,这个错误是:

Dec 12, 2011 11:36:33 PM game.Threads.Intro_main <init>
SEVERE: null
javax.imageio.IIOException: Can't read input file!
        at javax.imageio.ImageIO.read(Unknown Source)
        at game.Threads.Intro_main.<init>(Intro_main.java:58)
        at game.Intro.<init>(Intro.java:28)
        at game.Start.<init>(Start.java:25)
        at game.Start.main(Start.java:35)
Exception in thread "main" java.lang.NullPointerException
        at sun.awt.CustomCursor.<init>(Unknown Source)
        at sun.awt.windows.WCustomCursor.<init>(Unknown Source)
        at sun.awt.windows.WToolkit.createCustomCursor(Unknown Source)
        at game.Threads.Intro_main.<init>(Intro_main.java:69)
        at game.Intro.<init>(Intro.java:28)
        at game.Start.<init>(Start.java:25)
        at game.Start.main(Start.java:35)

我认为问题出在命令行&.jar不能确定我在应用程序中加载的图像的真实路径,所以我不知道避免这个问题的正确方法。

我知道这里有很多关于这个问题的问题,但我不知道真正的解决方案,我尝试了很多答案,他们都不起作用!

谢谢您的合作

避免这种情况的最佳方法是将要使用的图像打包到.jar文件中。然后使用类加载器加载图像。

javax.imageio.ImageIO.read(getClass().getResourceAsStream("myImage.png"));

要解决这个问题,只需通过winrar归档程序将jar文件解压缩到一个文件夹中。然后看看结果……你的外部文件不会在那里…因此,您必须将外部文件与jar文件放在同一个文件夹中。和NullPointerException问题出来没有正确初始化你的jar文件。你必须设置Main类,它有Main方法

如果您使用只读图像,可以将它们留在jar中,并使用URL getClass(). getresource()或InputStream getClass(). getresourcesstream ()。否则,您可以使用System.getProperty("user.dir").

的工作目录路径。

主目录System.getProperty("home.dir")也经常被使用:例如"/NetbeansProjects"用于NetbeansIDE.

相关内容

  • 没有找到相关文章

最新更新