使用多个类构建Jar文件

时间:2013-08-11 06:43:51

标签: java jar

有没有办法构建一个特定文件夹内的任何内容的jar文件?

在我的文件夹中,我的主类名为“GamesCombined.java”,带有.class文件

这是我的目录在GamesCombined文件夹中的样子

-> GamesCombined.java
-> GamesCombined.class //classes*
-> games (folder)
|
|----> pacman (folder)
|   |
|   |----> PacmanGame.java
|   |----> PacmanGame.class //classes*
|
|----> racinggame(folder)
     |
     |----> RacingGame.java
     |----> RacingGame.class //classes*
-> images (folder)
|
|----> pacman (folder)
|    |
|    |----> //jpg's and png's
|
|----> racinggame (folder)
     |
     |----> //jpg's and png's

我已经通过以下链接制作了GamesCombined.java的jar文件: http://www.skylit.com/javamethods/faqs/createjar.html

但是它有一个错误:

线程“main”中的异常java.lang.NoClassDefFoundError:games / pacman / PacmanGame(错误的名字:PacmanGame)

GamesCombined.java有导入games.pacman。*;

有没有办法可以构建包含其他类的jar文件?我该怎么办? :○

我是JAR文件的新手。 :/

2 个答案:

答案 0 :(得分:5)

最简单的方法是使用IDE中包含的Jar Builder。 Java带来了一个也可以创建JarFiles的工具,看看:Creating a JAR File

(your jdk/bin)jar cf jar-file input-file(s)

在这两种方式中,你必须检查你的类路径,写在你的清单

修改

JCreator Pro非常简单:

点击: 配置>选项>工具>新建>创建JAR文件

这会创建一个用户工具来创建一个JAR文件,但尚未包含清单,您必须手动添加清单。

或者您可以配置命令行开关以合并清单,例如: cvmf $ [PrjDir] \ MANIFEST.MF $ [PrjName] .jar。

这应该在项目目录中包含清单'MANIFEST.MF'作为清单。你必须自己创造它。

注意:这已经 NOT 进行了测试

答案 1 :(得分:0)

NoClassDefFoundError表示您没有在PacManGame.java中指定包(或者在将其添加到jar之前没有重新编译它)。

package games.pacman;
public class PacManGame {
    ...

要回答原始问题,您可以使用

创建jar文件
jar cvfm gamescombined.jar MANIFEST.MF -C GamesCombined/ .