10

そこで、Quartz-all-2.0.1.jar という Quartz jar を使用しています。readme から、その jar にはすべてが設定されているはずです。ただし、を使用して SchedulerFactory を作成しようとすると、

SchedulerFactory sf = new StdSchedulerFactory();

私はこれを得る:

Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
    at org.quartz.impl.StdSchedulerFactory.<init>(StdSchedulerFactory.java:268)
    at WebScraper.Main.main(Main.java:19)
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:321)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:266)

プログラムを実行しようとする前に Eclipse がエラーを表示しないので、私も混乱しています。助けてくれてありがとう。

4

3 に答える 3

10

Simple Logging Facade for Java(SLF4J)のドキュメントには、Quartzがslf4jに依存していると記載されています。slf4jをダウンロードして、クラスパスに追加できます。この問題がなくても、なぜ以前に機能したのかわかりません。

于 2011-04-26T20:46:52.857 に答える
2

slf4j API jar と実装 jar が必要になります。

日食で文句を言わない理由について。これは実行時の依存関係にすぎません。実際に slf4j を使用するコードをコンパイルしていないため、コードは問題なくコンパイルされます。一方、実行しようとすると、依存しているコード (Quartz など) は、提供する必要がある slf4j に依存しています。

于 2011-04-26T21:05:49.063 に答える
-1

Maven に慣れている場合は、この依存関係を POM ファイルに追加できます。

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.5.6</version>
</dependency>

次に、このライブラリをプロジェクトの依存関係に追加します。

于 2014-11-10T08:07:20.327 に答える