如何轻松地从 Intellij 制作 jar 文件并 运行 它正确?

How to easily make a jar file from Intellij and run it correctly?

  1. 通过 Intellij Artifacts 制作 jarfile 当我 运行 jarfile 时显示此错误:Error: Invalid or corrupt jarfile Test.jar

  2. 在通过 Maven 程序集插件制作 jarfile 时,当我 运行 jarfile java.lang.NoClassDefFoundError: javafx/application/Application

我不知道我做错了什么。

EDIT :我将 META-INF 放在正确的文件夹中,现在 java.lang.NoClassDefFoundError: javafx/application/Application 但是我制作了 jarfile。当我在 Intellij 上启动程序时一切正常。

我解决了我自己的问题(感谢我自己)。如果您使用 MavenIntellij,那么这里是解决方案。您可以使用名为 shade.

的 Maven 插件
  1. pom.xml中,在插件部分写下:

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>3.2.0</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <shadedArtifactAttached>true</shadedArtifactAttached>
                            <shadedClassifierName>project-classifier</shadedClassifierName>
                            <outputFile>shade${project.artifactId}.jar</outputFile>
                            <transformers>
                                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                    <mainClass>folder.Main</mainClass>
                                </transformer>
                            </transformers>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
    
  2. 将 "folder.Main" 更改为您的 class 包含主要部分的名称。

  3. 转到运行配置(在绿色锤子的右边)。单击 + 和应用程序。现在用您的主要 class.

  4. 填充主要 class 部分
  5. 重要 : 在 运行 配置 window 的底部,有一个绿色锤子 build 。在其上方,单击 + -> 运行 Maven 目标。在命令行中,写入 clean install。单击确定。

  6. 运行 你的程序,就像你通常做的那样,使用你的新 运行 配置。 intellij底下应该有很多日志,在你的项目根目录新建一个文件,名字叫shadeyour_project_name.jar

  7. 要启动它,请在 jarfile 文件夹中打开一个终端,然后使用 java -jar jarfile.jar