我参与创建了一个包含大约60个包和150多个类以及一些外部库的项目。我如何将这些东西打包到一个可执行的jar文件中,以便我可以将它作为应用程序运行。任何人都可以提供详细的步骤。如何为包含多个包和库的项目生成可执行文件.jar文件?
感谢提前回复。
我参与创建了一个包含大约60个包和150多个类以及一些外部库的项目。我如何将这些东西打包到一个可执行的jar文件中,以便我可以将它作为应用程序运行。任何人都可以提供详细的步骤。如何为包含多个包和库的项目生成可执行文件.jar文件?
感谢提前回复。
在Eclipse中选择“导出为可运行JAR”。
如果你想把它全部放在一个文件中,选择'将库提取到JAR中'。
感谢加勒特, 现在我能够生成一个可执行的jar文件,它也能正常工作。但我有一个问题。它只在放置在项目的工作区而不在其外部时才起作用。任何想法都会非常棒。 – 2012-02-07 13:03:54
您是否有任何失败讯息?您可以尝试在运行JAR时设置[classpath](http://docs.oracle.com/javase/tutorial/deployment/jar/downman.html),并查看是否修复了这个问题。在这种情况下,您的工作空间中存在不在JAR中的依赖关系。 – 2012-02-07 14:13:44
我强烈建议您将其进行初始化。项目描述从长远来看,使用Apache Maven将对您有很大帮助。
如果您使用Netbeans,请右键单击您的项目,然后单击Clean and Build。这将在项目的根目录中创建一个名为dist
的文件夹。该文件夹包含jar
文件。
您可以使用Maven来构建你的项目,并生成所有的依赖关系的罐子maven-shade-plugin
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>1.4</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
<configuration>
<finalName>my-executable</finalName>
<shadedArtifactAttached>true</shadedArtifactAttached>
<shadedClassifierName>shaded</shadedClassifierName>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<!-- Main class -->
<mainClass>com.worklight.my.cli.MainClassName
</mainClass>
</transformer>
</transformers>
</configuration>
</plugin>
有谁即使在提问之前再搜索?这在SO上被多次提及。可能的[依赖关系的可执行JAR]重复(http://stackoverflow.com/questions/3753894/executable-jar-with-depedencies) – Perception 2012-02-03 15:07:26
这可能更相关:[部署所有在一个罐子](http:// stackoverflow.com/questions/2212913/netbeans-deploying-all-in-one-jar)。 – Dmitri 2012-02-03 15:58:02