将外部类导出到JAR中 - Eclipse

时间:2010-02-18 07:29:06

标签: java eclipse jar external-dependencies

我的项目需要几个类文件。我已将它们添加到源文件夹本身的适当文件夹结构中。我的限制是我必须提供一个包含所有依赖类的jar文件。它不能是可执行的jar文件。

现在我遇到的问题是,当我在eclipse中选择导出以导出jar文件时,我没有得到我在源文件夹中添加的类文件(.class),导出了。它们甚至没有列在包浏览器中。我该如何实现这一目标?是否需要修改任何导出设置?

要谨慎,我的项目就像这样

project
     src
       com
         test
            file1.java
            file2.java
          external
            class1.class
            class2.class

现在我希望我的源文件生成的类和我自己添加的类文件都被导出到jar中。

5 个答案:

答案 0 :(得分:2)

也许您需要export Runnable JAR file

编辑:如果你有很多依赖项,那么jar收缩器/混淆器就是你最好的朋友。请参阅ProguardyGuard。对于Proguard,有一个Eclipse plugin。或者您可以使用Ant手动集成其中任何一个。

答案 1 :(得分:0)

首先,我不确定如果他们的类不在他们各自的目录中代表他们的包,你的类可以工作。

project
     src
       com
         test
            file1.java
            file2.java
          external
            org
              extproject
                subpackage
                  class1.class
                  class2.class

然后,我宁愿尝试添加引用这些类的根目录的 linked folder ,并在将项目导出到Jar时选择该文件夹。

project
     src
       com
         test
            file1.java
            file2.java
     org (linked to c:/another/path/to/ext/project/classes)
       extproject
         subpackage
            class1.class
            class2.class

答案 2 :(得分:0)

每当我实现需要交付给客户的应用程序时,我都会包含某种构建脚本,用于从命令行构建分发。例如,Ant“build.xml”文件,Maven“pom.xml”文件甚至是Makefile。为了处理您的特定情况,脚本将包含一个步骤,将所有相关类组装到一个临时目录树中,并从中创建发行版JAR文件。

我不喜欢依赖某些IDE的变幻莫测来进行生产构建。

答案 3 :(得分:0)

我会使用Maven和Maven Assembly Plugin - 这使得制作带有依赖项的jar非常容易 - 甚至是可执行jar。

缺点是学习如何充分利用Maven需要一段时间 - 但是一旦你改变你的项目使用它,你会发现生活更简单。当您使用Eclipse时,我可以推荐这个插件:M2 Eclipse Plugin

答案 4 :(得分:0)

src文件夹通常不用于保存.class文件。 Eclipse看起来已经构建了.class文件并创建了jar文件。因此,您可以将外部.class文件添加到项目下的“lib或其他”文件夹中。然后构建您的项目并导出jar文件。你会看到jar文件现在包含一个名为lib或其他文件夹的文件夹以及你的外部.class文件。