You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Akman/jpackage-maven-plugin生成多系统安装包遇Java路径错误求助

问题排查与修复方案

错误原因分析

  • 插件路径拼接bug:Akman/jpackage-maven-plugin存在路径解析逻辑错误,当系统默认Java路径为/usr/bin/java时,插件错误拼接成/usr/bin/bin/java,重复了bin目录。
  • 版本兼容性问题:当前使用的插件版本与JDK 17、Maven 3.9.0不兼容,导致路径解析异常。
  • 跨平台配置污染:多execution节点的配置可能存在参数残留,干扰了Linux环境下的路径解析逻辑。

修复方法

1. 强制指定正确的JDK根目录

在插件配置中明确toolHome为Liberica JDK的根目录(而非bin子目录),避免插件错误拼接路径:

<plugin>
    <groupId>io.github.akman</groupId>
    <artifactId>jpackage-maven-plugin</artifactId>
    <version>替换为最新稳定版</version>
    <executions>
        <!-- 你的多平台execution配置 -->
    </executions>
    <configuration>
        <toolHome>/usr/lib/jvm/bellsoft-liberica-jdk17-full-amd64</toolHome>
        <!-- 其他打包配置 -->
    </configuration>
</plugin>

将上述路径替换为你实际的Liberica JDK根目录。

2. 升级插件至最新版本

Akman插件后续版本可能已修复路径拼接问题,前往Maven中央仓库获取最新稳定版替换当前版本号,重新执行打包命令。

3. 清理Maven缓存并重建

执行以下命令清除缓存,避免旧配置残留影响构建:

mvn clean install -U

4. 简化配置测试

暂时移除多execution节点,仅保留Linux平台的打包配置,测试是否能正常执行,排除跨平台配置的干扰。

替代插件方案

如果Akman插件问题无法解决,推荐以下成熟的跨平台打包工具:

1. Apache官方维护的maven-jpackage-plugin

兼容性更强,支持跨平台指定JDK路径:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jpackage-plugin</artifactId>
    <version>1.0.0</version>
    <executions>
        <execution>
            <id>linux-package</id>
            <phase>package</phase>
            <goals>
                <goal>jpackage</goal>
            </goals>
            <configuration>
                <runtimeImage>/path/to/liberica-jdk-17</runtimeImage>
                <type>deb</type>
                <!-- 其他Linux打包参数 -->
            </configuration>
        </execution>
        <!-- Windows、Mac平台的execution配置 -->
    </executions>
</plugin>

2. GraalVM Native Image Maven插件

生成原生可执行文件,性能更优,支持跨平台构建:

<plugin>
    <groupId>org.graalvm.buildtools</groupId>
    <artifactId>native-maven-plugin</artifactId>
    <version>0.9.22</version>
    <executions>
        <execution>
            <id>build-native</id>
            <phase>package</phase>
            <goals>
                <goal>compile-no-fork</goal>
            </goals>
            <configuration>
                <imageName>your-app</imageName>
                <buildArgs>--no-fallback</buildArgs>
            </configuration>
        </execution>
    </executions>
</plugin>

3. Launch4j Maven插件(仅Windows)

专注Windows平台exe安装包生成,可配合其他插件处理Linux/Mac打包:

<plugin>
    <groupId>com.akathist.maven.plugins.launch4j</groupId>
    <artifactId>launch4j-maven-plugin</artifactId>
    <version>2.2.0</version>
    <executions>
        <execution>
            <id>build-windows-exe</id>
            <phase>package</phase>
            <goals>
                <goal>launch4j</goal>
            </goals>
            <configuration>
                <headerType>console</headerType>
                <outfile>target/your-app.exe</outfile>
                <jar>target/your-app.jar</jar>
                <jre>
                    <path>/path/to/windows-jdk-17</path>
                </jre>
            </configuration>
        </execution>
    </executions>
</plugin>

内容的提问来源于stack exchange,提问作者MarekChr

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 12:10:25