You need to enable JavaScript to run this app. Maven打包模块化JavaFX项目集成MySQL connector java报错如何解决
优惠活动
大模型
产品
解决方案
定价
更多

Maven打包模块化JavaFX项目集成MySQL connector java报错如何解决

问题解决方案

你遇到的两个问题可以分别按以下步骤处理:

1. 解决「no main manifest attribute」报错

这个报错是因为默认Maven打包时没有在jar包的MANIFEST.MF文件中声明主类信息,你需要在pom.xml的plugins节点下新增maven-jar-plugin配置:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <version>3.2.0</version>
    <configuration>
        <archive>
            <manifest>
                <mainClass>AccountZeyny/org.openjfx.Main</mainClass>
            </manifest>
        </archive>
    </configuration>
</plugin>

如果你需要打包含所有依赖的可执行fat jar,建议额外配置maven-shade-plugin,把JavaFX、MySQL驱动等依赖一起打进jar包,避免运行时缺失类的问题:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-shade-plugin</artifactId>
    <version>3.2.4</version>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>shade</goal>
            </goals>
            <configuration>
                <shadedArtifactAttached>true</shadedArtifactAttached>
                <shadedClassifierName>shaded</shadedClassifierName>
            </configuration>
        </execution>
    </executions>
</plugin>

配置完成后重新打包,生成的带shaded后缀的jar包就可以直接运行。

2. 解决「Required filename-based automodules detected」警告

这个警告不影响项目正常运行,触发原因是你使用的mysql-connector-java 8.0.25版本没有正式的JPMS模块描述文件,被JDK识别为基于文件名的自动模块,警告只是提醒你不要将依赖自动模块的项目发布到公共Maven仓库,私有场景使用完全没问题。
如果想要彻底消除警告,可以将MySQL驱动升级到已经支持JPMS的更高版本,比如8.0.33及以上版本,官方已经添加了正式的模块描述。

内容的提问来源于stack exchange,提问作者احمد ربايعة

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 06:24:03