2012-06-18 47 views
0

基本上我刚刚得到了一些结果,并且结果低于预期。我被告知,运行应用程序的图像时,很感动,并大量异常被抛出:压缩时应用程序无法正常工作

Exception in thread "main" java.lang.NullPointerException 
at uk.ac.aber.dcs.cs12420.aberpizza.gui.FrontGUI.getName(FrontGUI.java:494) 
at sun.lwawt.macosx.CPlatformWindow.getInitialStyleBits(CPlatformWindow.java:271) 
at sun.lwawt.macosx.CPlatformWindow.initialize(CPlatformWindow.java:228) 

好了,我查了很多倍,运行的JAR文件发送事事休之前的工作。而我现在再次检查,它仍然如此。唯一不能解决问题的是我不提取内容并尝试使用压缩文件夹中的可运行jar文件。

我假设这是问题,因为图像不显示,事情根本无法正常工作。但是,从压缩文件夹运行jar时,我该如何正确使用图像?

这是一个不太风趣的问题。我想知道在使用外部图像时,我的应用程序是否应该或不应该在没有提取的情况下运行?

只是一个小小的编辑:添加到我的问题:如果可运行jar文件正在直接从zip文件运行,我怎么能得到图像的工作。即我如何使图像文件/文件夹与可运行的jar文件一起移动到临时位置?

+1

您不应该必须能够从压缩文件夹中运行,但是您应该希望优雅地处理错误,而不是简单地抛出NullPointerException。 – Tharwen

+0

我从来没有想到它可能会在没有最初提取整个zip文档的情况下运行,因为它是从zip文件夹运行的,而且经常会产生错误。然而,你是非常正确的,未来我会回想起来并处理这种性质的潜在错误。 – DanMc

回答

3

实际上,从一个压缩文件夹运行一个文件,将文件解压缩到一个临时文件夹并从那里执行它。如果您的应用程序依赖存档中的某些其他文件,则可能无法解压缩,从而导致错误消失。

+0

如果是这样,什么决定哪些文件被提取? –

+0

那么这就是解压缩的应用程序,在你的具体情况下,我相信它是你的MacOSX文件管理器/浏览器。 – Morfic

+0

标记机实际上。我使用windows:p感谢评论! – DanMc