如何在Eclipse中构建Java项目以创建外部JAR文件

33

我最近继承了一个用Java编写的大型软件项目。上一个开发人员使用的是Eclipse,所以我也在使用它,但是我无法弄清楚如何构建任何内容。我没有看到任何构建脚本,在Eclipse中打开项目后,“构建所有”和“构建项目”的选项都变灰了。

该项目实际上是由许多相互依赖的包组成的庞大集合。我知道这必须是一个简单的问题,但是我无法通过谷歌或仅在Eclipse中进行试探找到答案。我对这个IDE非常陌生-我几乎整个职业生涯都在使用Visual Studio。非常感谢您提供任何问题/建议。


1
'Build Automatically'是否被勾选(在“项目”菜单下)? - sgowd
5个回答

56

文件 -> 导出 -> 导出 JAR 文件。然后选择您的项目,按两次下一步,选择主类。

图片描述

图片描述

图片描述

图片描述

图片描述

图片描述

如果您只想运行,请打开主类并在顶部单击绿色箭头。

图片描述

如果您只想构建类文件,则我认为Eclipse每次保存时都会自动构建。 您需要选择项目->自动构建。

图片描述


我的答案占据了页面的3/4...我不知道这是好事还是坏事。 - Ryan Amos
一个解释在Eclipse中构建过程的链接。 - sgowd
@sans481 我在快速搜索中找到的最好的是http://www.eclipse-blog.org/eclipse-ide/building-a-java-project-in-eclipse.html,但这已经过时并且有点无用了。 - Ryan Amos
我正在阅读这篇文章(通常我在NetBeans中工作,但因为我们课上使用Eclipse,所以刚刚转换过来)。我按照这些说明操作,但文件无法加载。我改变的是选择了“可运行JAR”而不是“JAR”,这样就可以正常工作了。也没有太多的菜单需要浏览,只需命名JAR并选择主项目即可。我不知道这是否会帮助未来的任何人,但感谢您花费大量时间提供原始答案。非常有用。 - Jeremy Johnson
可运行的JAR文件通常会添加一些额外的冗余内容。(例如“jarinjar”加载器之类的东西......不确定它是用来做什么的,但当您创建一个可运行的JAR并生成一个ANT脚本时,它就会存在)您是否确保在导出JAR菜单中选择了一个主类? - Ryan Amos
显示剩余7条评论

13

首先,Eclipse始终在后台构建您的项目。如果您想要一个可以部署或执行的.jar文件或Web存档文件,那么这并没有什么帮助。如果您想要这样的文件,那么有关导出到jar的建议是正确的。

不清楚您有多少Java经验,所以我会问一下 - 您确定没有构建脚本吗?查找名为.pom的文件,或者build.xml或.gradle文件。如果项目的规模如您所说,我想必须有某种构建脚本/描述符,但如果您不熟悉Java构建系统,则可能不明显。

Eclipse(以及几乎所有现代IDE)都是一个极其复杂的产品,我们可能给出的任何一两行描述都无法让您在大型代码库上运行起来。当您在eclipse中打开该项目时,源代码树中是否有很多类的红色“X”图标?如果您没有设置好库,那是很典型的情况,这又是一个大主题。了解一下您是否导入了其他人已经拥有的项目(或只使用他们的旧开发工具箱),还是从头开始做这一切会有所帮助。


1
所有的库都已经设置好了,也没有编译错误。我能够导出为jar文件,但显然没有主类定义。我不知道入口点应该是什么。这是我需要从原始开发者那里找出来的吗?当我尝试将其导出为“可运行的JAR”时,有3个配置设置,但是所有三个都给我关于缺少“Main”类的错误。 - Jake
这是直接从控制台运行的东西吗?至少,找到你的主方法应该很容易。点击搜索|Java并设置对话框如下以查找源代码中主方法的声明: image (显然我不能在评论中嵌入图像,所以只需单击链接即可) - cutchin

4
你可以查看文件 .project,这个文件告诉 Eclipse 如何构建项目。如果有以下代码:
<buildSpec>
    <buildCommand>
        <name>org.eclipse.jdt.core.javabuilder</name>
        <arguments>
        </arguments>
    </buildCommand>
</buildSpec>
<natures>
    <nature>org.eclipse.jdt.core.javanature</nature>
</natures>

mean是一个Java项目,它将以Java项目的方式在Eclipse中进行自动构建,因此不需要另一个构建脚本。


1

通常情况下,当您添加新文件时,Eclipse会自动构建。首先尝试清理项目,也许您会得到一个未灰化的构建选项。

您的项目中是否有Java文件或仅有二进制文件?


1

文件 > 导入 > 现有项目到工作区... 将项目包含到工作区中。 之后,文件 -> 导出 -> 导出 JAR,将其导出为一个 jar 文件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接