在生成的jar中找不到log4j类

时间:2018-07-02 07:06:25

标签: java jar log4j classpath

我使用maven-assembly-plugin插件生成jar文件。我使用java -jar执行jar。我收到错误消息:

  

log4j:未找到警告JmDNS或serviceInfo

我尝试使用-classpath中jar的路径,但是遇到了相同的错误。

插件配置:

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-assembly-plugin</artifactId>
        <version>3.1.0</version>
        <executions>
            <execution>
                <id>make-assembly</id>
                <phase>package</phase>
                <goals>
                    <goal>single</goal>
                </goals>
            </execution>
        </executions>
        <configuration>
            <archive>
                <manifest>
                    <mainClass>test.LeanFTest</mainClass>
                </manifest>
            </archive>
            <finalName>${project.artifactId}-fatjar-${project.version}</finalName>
            <appendAssemblyId>false</appendAssemblyId>
            <descriptors>
                <descriptor>src/main/assembly/leanft-assembly.xml</descriptor>
            </descriptors>
        </configuration>
    </plugin>

1 个答案:

答案 0 :(得分:1)

最有可能归结为:

  • 您的Maven构建没有将相关的工件包括到您的JAR文件中。换句话说:您创建的JAR 不包括logj4 JAR。您可以使用Maven配置进行更改,有关详细信息,请参见here
  • 由于您的JAR不包含依赖项,因此您依赖的所有JAR 必须都在类路径中。含义:在命令行上运行新的JAR时,运行所有可能需要必须的元素出现在类路径中。