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

如何为Maven项目创建可执行JAR?执行时遇SLF4J错误求助

解决Maven可执行JAR打包的SLF4J绑定错误与初始化异常

嘿,我来帮你搞定这个问题!你碰到的这两个错误是连锁反应:首先是SLF4J找不到具体的日志实现,进而导致了ExceptionInInitializerError(因为你的Reifier类在初始化时用到了SLF4J日志,却没法正常加载)。下面是一步步的解决办法:

1. 补全SLF4J的日志实现依赖

SLF4J本身只是个日志门面,必须搭配具体的日志实现才能工作。你需要在pom.xml里添加以下其中一种依赖:

选项1:轻量的SLF4J Simple实现

适合简单项目,直接添加:

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>1.7.36</version> <!-- 替换为最新稳定版即可 -->
    <scope>runtime</scope>
</dependency>

选项2:功能更全的Logback实现(推荐)

如果需要日志配置、滚动日志等进阶功能,添加:

<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <version>1.2.11</version> <!-- 替换为最新稳定版 -->
    <scope>runtime</scope>
</dependency>

2. 确保Maven打包时包含所有依赖(构建Fat JAR)

默认的Maven jar插件只会打包你的代码,不会包含依赖,这也是运行时找不到SLF4J实现的核心原因之一。推荐用maven-shade-plugin来构建包含所有依赖的可执行Fat JAR:

在pom.xml的<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>
                <!-- 替换成你的主类全路径 -->
                <mainClass>me.vijaychavda.rdfr.Reifier</mainClass>
                <transformers>
                    <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                        <mainClass>me.vijaychavda.rdfr.Reifier</mainClass>
                    </transformer>
                </transformers>
            </configuration>
        </execution>
    </executions>
</plugin>

3. 重新打包并运行

执行Maven命令完成打包:

mvn clean package

然后找到target目录下的Fat JAR(通常命名为{项目名}-{版本}-shaded.jar),运行测试:

java -jar target/your-project-name-shaded.jar

这样就能解决SLF4J绑定缺失的问题,进而消除ExceptionInInitializerError啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:09:08