1

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

现在我面临的问题是,当我在 eclipse 中选择导出来导出 jar 文件时,我没有得到我在源文件夹中添加的类文件(.class),被导出了。它们甚至没有在包资源管理器中列出。我怎样才能做到这一点?需要修改任何导出设置吗?

说实话,我的项目是这样的

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

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

4

5 回答 5

2

也许您需要导出 Runnable JAR 文件

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

于 2010-02-18T14:53:00.120 回答
0

首先,如果您的类不在代表其包的各自目录中,我不确定它们是否可以工作。

IE

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

然后,我宁愿尝试添加一个引用这些类的根目录的链接文件夹,并在将项目导出到 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
于 2010-02-18T08:36:28.010 回答
0

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

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

于 2010-02-18T09:36:10.407 回答
0

我会使用 Maven 和Maven 程序集插件——这使得制作一个带有依赖项的 jar 变得非常容易——甚至是一个可执行的 jar。

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

于 2010-02-18T09:39:47.450 回答
0

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

于 2010-02-18T09:49:40.150 回答