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

构建GnuCash文档时Make命令失效,出现Java NoSuchMethodError异常

解决GnuCash文档构建时FOP SVG方法不存在的报错

问题原因

你碰到的java.lang.NoSuchMethodError是FOP与Batik版本不兼容导致的:FOP 2.10要求的Batik版本是1.18及以上,而你安装的Batik 1.17里没有setSourceResolution(float)这个方法——它是Batik 1.18才新增的,所以调用时直接报错终止。

修复步骤

  • 先卸载当前的Batik包:
    sudo pacman -R java-batik
    
  • 手动安装适配的Batik 1.18版本:
    1. 下载Apache Batik 1.18的二进制包(选支持Java 8+的版本)
    2. 解压后把所有JAR文件放到FOP的类路径目录(一般是/usr/share/fop/lib/),或者添加到系统CLASSPATH环境变量里
      要是构建脚本支持Maven,也可以在项目pom.xml里指定正确的依赖版本:
    <dependency>
        <groupId>org.apache.xmlgraphics</groupId>
        <artifactId>batik-all</artifactId>
        <version>1.18</version>
    </dependency>
    
  • 验证适配情况:
    执行fop -version查看FOP的依赖信息,确认Batik版本匹配上了。

顺带解决字体/连字警告

  • 安装常用开源字体包:
    sudo pacman -S ttf-dejavu noto-fonts
    
  • 修改FOP配置文件fop.xconf,添加字体映射:
    <fonts>
        <font kerning="yes" embed-url="/usr/share/fonts/TTF/DejaVuSans.ttf">
            <font-triplet name="DejaVu Sans" style="normal" weight="normal"/>
        </font>
    </fonts>
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 19:02:39