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

mvn exec:java未传递java.library.path问题求助

Maven exec:java无法传递java.library.path参数的解决方法

在Windows 11系统的批处理文件中执行以下命令时:

mvn exec:java -Dexec.mainClass=com.fiscalassets.tax.PrintForm1098s -Dexec.args="application.properties.FiscalAssets" -Djava.library.path="C:\OneDrive\Dev\Jacob"

出现错误提示找不到jacob-1.20-x64,且指定的路径未被加入到java.library.path中,可尝试以下解决方法:

  • 改用exec:exec命令直接控制JVM参数
    exec:exec插件能更精准地传递JVM参数,命令格式如下:

    mvn exec:exec -Dexec.executable="java" -Dexec.args="-Djava.library.path=C:\OneDrive\Dev\Jacob -cp %classpath com.fiscalassets.tax.PrintForm1098s application.properties.FiscalAssets"
    

    注:Windows批处理中的%classpath会被Maven自动替换为项目的完整类路径。

  • 在pom.xml中配置exec插件的JVM参数
    在项目的pom.xml里预先配置exec插件的jvmArguments,避免命令行参数传递问题:

    <build>
      <plugins>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>exec-maven-plugin</artifactId>
          <version>3.1.0</version>
          <configuration>
            <mainClass>com.fiscalassets.tax.PrintForm1098s</mainClass>
            <arguments>
              <argument>application.properties.FiscalAssets</argument>
            </arguments>
            <jvmArguments>
              <jvmArgument>-Djava.library.path=C:\OneDrive\Dev\Jacob</jvmArgument>
            </jvmArguments>
          </configuration>
        </plugin>
      </plugins>
    </build>
    

    配置完成后,批处理中的命令可简化为:

    mvn exec:java
    
  • 处理路径空格问题
    路径中包含空格(如OneDrive目录)可能导致参数解析异常,可尝试:

    • 确保路径被正确包裹在引号中
    • 使用Windows短路径格式(例如将C:\OneDrive\Dev\Jacob替换为C:\OneDr~1\Dev\Jacob)
  • 临时将库路径加入系统PATH
    把jacob库所在目录临时加到系统PATH环境变量中,JVM会自动从PATH加载本地库:

    set PATH=C:\OneDrive\Dev\Jacob;%PATH%
    mvn exec:java -Dexec.mainClass=com.fiscalassets.tax.PrintForm1098s -Dexec.args="application.properties.FiscalAssets"
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 00:16:01