我有以下文件夹:
Game Of Life
|_bin
| |_Board.class
| |_Frame.class (main class)
| ...
|_res
| |_playToolbar.png
| |_pauseToolbar.png
| ...
|_src
|_Board.java
|_Frame.java
...
如何创建.jar
包含每个类和图像的可执行文件,以便在执行.jar
时运行Frame
该类?我正在使用 Eclipse。
我有以下文件夹:
Game Of Life
|_bin
| |_Board.class
| |_Frame.class (main class)
| ...
|_res
| |_playToolbar.png
| |_pauseToolbar.png
| ...
|_src
|_Board.java
|_Frame.java
...
如何创建.jar
包含每个类和图像的可执行文件,以便在执行.jar
时运行Frame
该类?我正在使用 Eclipse。
如果您使用的是 eclipse,您可以Rightclick->Export
在项目上做 a 并Runnable Jar File
在Java
. 您的res
文件夹必须在 eclipse 中配置为源文件夹,否则不会导出。
您还必须注意,一旦将图像打包到 jar 文件中,加载图像可能会有所不同。有关更多信息,请参阅此
我认为最好把你的照片放在一个包裹里。这样,所有内容都将从您的 JAR 文件中打包和加载。
之后,您必须使用 Class 实例中的 getResource(...) 方法加载图像。
你会有这样的东西:
GameOfLife
|- src
| |- my
| | |- company
| | | |- app
| | | | | Board.java
| | | | | Frame.java
| | | | |- resources
| | | | | |- playToolbar.png
| | | | | |- pauseToolbar.png
然后,要从 Frame 类创建一个“playToolbar.png”的 ImageIcon,您必须使用:
new ImageIcon(Frame.class.getResource("resources/playToolbar.png"));
或者:
new ImageIcon(Frame.class.getResource("/my/company/app/resources/playToolbar.png"));
如果您使用的是 Netbeans GUI builder,它可以毫无问题地从包中加载资源。
要自动运行 Frame 类,您必须创建一个 MANIFEST.MF 文件并将其放在 JAR 根目录下名为 META-INF 的文件夹中。在内部,您可以将 Frame 定义为 Main-Class:
Manifest-Version: 1.0
Main-Class: my.company.app.Frame
如果您选择 export->Runnable Jar,Eclipse 可以自动执行此步骤。