我的项目需要几个类文件。我已将它们添加到源文件夹本身的适当文件夹结构中。我的限制是我必须提供一个包含所有依赖类的jar文件。它不能是可执行的jar文件。
现在我遇到的问题是,当我在eclipse中选择导出以导出jar文件时,我没有得到我在源文件夹中添加的类文件(.class),导出了。它们甚至没有列在包浏览器中。我该如何实现这一目标?是否需要修改任何导出设置?
要谨慎,我的项目就像这样
project
src
com
test
file1.java
file2.java
external
class1.class
class2.class
现在我希望我的源文件生成的类和我自己添加的类文件都被导出到jar中。
答案 0 :(得分:2)
也许您需要export Runnable JAR file?
编辑:如果你有很多依赖项,那么jar收缩器/混淆器就是你最好的朋友。请参阅Proguard或yGuard。对于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文件。