java - 如何使用maven项目在JavaFX中生成可执行jar

标签 java maven javafx openjfx

我无法运行生成的 jar 文件。这是我的错误输出:

no main manifest attribute, in myapp.jar

这是我的 pom.xml 文件:

    <plugins>
            <plugin>
                <groupId>org.openjfx</groupId>
                <artifactId>javafx-maven-plugin</artifactId>
                <version>0.0.4</version>
                <configuration>
                    <mainClass>Main</mainClass>
                    <executable>/Library/Java/JavaVirtualMachines/adoptopenjdk-12.0.2.jdk/Contents/Home/bin</executable>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>${maven.compiler.version}</version>
            </plugin>
            <!-- fat jar -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>${maven.shade.version}</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>

各位,帮帮我吧!如何解决这个问题?

最佳答案

Maven 阴影插件 使用此配置对我有用:

           <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>3.0.0</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <transformers>
                                <transformer
                                        implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                    <mainClass>Main</mainClass>
                                </transformer>
                            </transformers>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

只需将 Main 替换为您的主类即可。
要创建 fat jar,您需要调用 maven package 命令:

mvn package

关于java - 如何使用maven项目在JavaFX中生成可执行jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60028267/

相关文章:

java - 在 javafx 中禁用它后如何保持 GUI 组件的样式?

java - 未在指定日期范围内获取 Jasper 报告

java - 在Java服务器和多个Web浏览器之间是否存在用于数据同步的框架?

java - request.getParameter 不适用于 PUT 或 DELETE

java - 如何使用 Maven 创建 Stuts2 项目

JavaFX - JavaFX-Fallback-Class 的目的是什么?

java - 如何在 Selenium Grid 上对两个单例浏览器进行多线程处理?

动态 Java WSDL 客户端

java - 子字符串 pom.xml 中的变量

java - AnimationTimer & JavaFX : Rectangle won't move horizontally using the setTranslateX() method. 如何移动矩形?