有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在Unix中编译slf4j

我有一个Java程序,它使用slf4j-api-1.7.10.jarslf4j-simple-1.7.10.jar。我曾尝试在Unix shell中编译它,如下所示:

javac -cp "$CLASSPATH:.:slf4j-api-1.7.10.jar:slf4j-simple-1.7.10.jar" Test.java

运行java Test会导致以下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
        at SystemCommandExecutor.<clinit>(SystemCommandExecutor.java:13)
        at Test.main(Test.java:12)
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
        at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:323)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
        ... 2 more

我能够在Windows中使用两个jar依赖项运行该程序,因此我认为我不需要任何额外的jar。也许我在Unix中发出了错误的编译命令,因为我对语法相当不熟悉


共 (1) 个答案

  1. # 1 楼答案

    为什么不创建pom。用maven依赖项编译xml

    在这种情况下,您应该包括主类的包:

    javac-类路径外部。jar com/yourpackage/yourMainClass。爪哇

    还要检查slf4j包含的语法