如何导出具有非jar依赖项的工作jar

时间:2016-05-27 04:29:06

标签: java deployment jar export libraries

我是一个相当新的java和我正在制作一个口袋妖怪风格的游戏练习,我希望能够将游戏发送给我的朋友。

这是主要问题:我的netbeans IDE中的游戏运行正常,但在我的dist文件夹中使用jar文件不起作用并抛出nullPointerException。我已经缩小了问题范围。我的游戏使用了我在我的库中导入的imageIcons和png / gif图像。我可以像这样访问他们

Icon bckground = new javax.swing.ImageIcon(getClass().getResource("/pictures/BG.gif"));

我不确定如何将图像放入lib文件夹以供程序查找。我已经尝试将文件直接复制到lib文件夹并为它们创建一个名为pictures的文件夹;既没有奏效。现在lib文件夹只包含一个来自我的其他库的jar。 (这是我导入我的库的唯一jar文件)

Pic of what it looks like in IDE

2 个答案:

答案 0 :(得分:1)

在我的情况下,我做了类似的事情。

final BufferedImage image = ImageIO.read(new File("something.jpg"));

我刚将something.jpg转移到dist文件夹中,它运行正常。

清理完项目后,将BG.gif放入dist文件夹,然后在dist文件夹中运行jar文件。现在一切都应该没问题。将游戏发送给朋友时,您可以封装(隐藏,设置只读)您的代码(google encapsultaion java),然后将BG.gif传输到dist文件夹,归档项目。然后你的朋友只需要解压缩它并在dist文件夹中找到jar文件。

希望这会有所帮助:)

答案 1 :(得分:1)

请将您的图片(BG.gif)放在jar文件中用作图标Icon bckground = new javax.swing.ImageIcon(getClass().getResource("BG.gif"));的包(目录)中。您需要先更改文件的路径getResource("BG.gif"),然后从IDE创建jar文件。如果jar不包含图像,则可以使用任何解压缩应用程序(winrar等)打开jar,并将图像文件复制并粘贴到类所在的目录中。请让我知道结果。