如何制作可执行的jar文件?

Reu*_*ben 71 java jar executable-jar

我有一个程序,它包含两个简单的java swing文件.

如何为我的程序创建可执行jar文件?

小智 76

jar文件只是一个包含java文件集合的文件.要使jar文件可执行,您需要指定mainClass在jar文件中的位置.示例代码如下.

public class JarExample {

    public static void main(String[] args) {
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                // your logic here
            }
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

编译你的课程.要制作一个jar,您还需要创建一个Manifest File(MANIFEST.MF).例如,

Manifest-Version: 1.0
Main-Class: JarExample
Run Code Online (Sandbox Code Playgroud)

将已编译的输出类文件(JarExample.class,JarExample $ 1.class)和清单文件放在同一文件夹中.在命令提示符下,转到放置文件的文件夹,然后使用jar命令创建jar.例如(如果您将清单文件命名为jexample.mf)

jar cfm jarexample.jar jexample.mf *.class
Run Code Online (Sandbox Code Playgroud)

它将创建可执行的jarexample.jar.

  • 只是我的两分钱:你不一定要创建一个清单文件.对于****罐子实用,如果指定_e_代替_m_,那么你只需要指定入口点的标志(即主类)的应用,而不是一个清单文件.示例:`jar cvfe jarexample.jar com.example.jar.JarExample*.class` (31认同)
  • 如果您创建 MANIFEST.MF 文件,请不要忘记用换行符结束最后一行。在 Windows 上只需在末尾添加一个空行。否则最后一个属性将不会出现在 jar 文件中。在这种特殊情况下,Main-Class 属性将丢失。 (6认同)

小智 36

Eclipse中,您可以简单地执行以下操作:

右键单击Java Project并选择Export.

选择Java - > Runnable JAR文件 - >下一步.

选择Launch Configuration并选择项目文件作为Main类

选择要保存它的Destination文件夹,然后单击Finish.

  • Eclipse 在新包 org\eclipse\jdt\internal\jarinjarloader 中创建了一堆类(并且该 JAR 与 OpenJDK 不兼容)。为什么 eclipse 使这变得复杂? (2认同)

Riv*_*ver 13

这是一行:

jar cvfe myjar.jar package.MainClass *.class
Run Code Online (Sandbox Code Playgroud)

哪个MainClass是你的main方法的类,packageMainClass包的.

请注意.java,.class在执行此操作之前,您必须将文件编译为文件.

c  create new archive
v  generate verbose output on standard output
f  specify archive file name
e  specify application entry point for stand-alone application bundled into an executable jar file
Run Code Online (Sandbox Code Playgroud)

这个答案的灵感来自Powerslave对另一个答案的评论.


Wil*_*zel 8

如果您使用 maven,请将以下内容添加到pom.xml文件中:

<plugin>
    <!-- Build an executable JAR -->
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <version>2.4</version>
    <configuration>
        <archive>
            <manifest>
                <mainClass>com.path.to.YourMainClass</mainClass>
            </manifest>
        </archive>
    </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

然后就可以运行了mvn package。jar 文件将位于目标目录下。