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

使用Sat4J开发的Java程序导出Jar运行时JNI错误及类缺失求助

解决Sat4J导出Jar后运行出现NoClassDefFoundError的问题

别慌,这个问题我之前也碰到过,本质就是运行时找不到Sat4J的依赖类——本地IDE能正常跑,是因为IDE自动帮你把Sat4J的Jar包加入了类路径,但你导出的普通Jar只包含自己写的代码,没带上第三方依赖。下面给你几个靠谱的解决办法:

方法1:用IDE导出带依赖的可执行Jar

如果是用IDEA或Eclipse这类IDE,别选普通的"导出Jar"选项,要选带依赖的可执行Jar:

  • IDEA:通过File -> Project Structure -> Artifacts,添加一个JAR -> From modules with dependencies,选中你的主类,确认把Sat4J的依赖包都包含进去,最后构建Artifact生成Jar。
  • Eclipse:右键项目Export -> Runnable JAR File,在"Library handling"里选Package required libraries into generated JAR或者Extract required libraries into generated JAR,再指定主类和输出路径即可。

方法2:手动指定类路径运行普通Jar

如果已经导出了普通Jar(只含自己的代码),可以在运行时手动把Sat4J的依赖Jar加到类路径里:

# Windows系统用分号分隔路径
java -cp "你的项目Jar.jar;sat4j-core.jar;sat4j-sat.jar" com.yourpackage.YourMainClass

# Linux/macOS用冒号分隔路径
java -cp "你的项目Jar.jar:sat4j-core.jar:sat4j-sat.jar" com.yourpackage.YourMainClass

注意替换成你实际的Jar文件名和主类的全限定名(比如com.xxx.Main)。

方法3:用构建工具管理依赖(推荐)

如果项目还没用到Maven或Gradle,强烈建议上手用,能彻底解决依赖打包的问题:

  • Maven:在pom.xml里添加Sat4J的依赖,再配置maven-shade-plugin或maven-assembly-plugin,执行mvn package就能生成包含所有依赖的可执行Jar。比如shade插件的简单配置:
<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-shade-plugin</artifactId>
      <version>3.4.1</version>
      <executions>
        <execution>
          <phase>package</phase>
          <goals>
            <goal>shade</goal>
          </goals>
          <configuration>
            <transformers>
              <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                <mainClass>com.yourpackage.YourMainClass</mainClass>
              </transformer>
            </transformers>
          </configuration>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>
  • Gradle:添加shadow插件,配置主类后执行gradle shadowJar,就能得到带依赖的Jar。

额外提醒

你提到项目里有"含3个Sat4J类的包"——如果这些是你自己复制的Sat4J类,不建议这么做,直接用官方的Sat4J依赖Jar更稳妥,避免版本冲突或类缺失的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 04:24:50