java在Unix中编译slf4j
我有一个Java程序,它使用slf4j-api-1.7.10.jar
和slf4j-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 楼答案
为什么不创建pom。用maven依赖项编译xml
在这种情况下,您应该包括主类的包:
javac-类路径外部。jar com/yourpackage/yourMainClass。爪哇
还要检查slf4j包含的语法