我想读取一个项目的iCalendar(ics文件),并认为仅使用API​​可能会更容易。经过大量研究,我找到了iCal4j。

我是ical4j的新手,一直在寻找答案,并尝试进行研究,发现它的创建者允许他们想要的任何形式的日志记录,因此我感到很困惑。我试图得到一个简单的例子,我发现工作。我对不同的API感到恐惧,这使我丧命。我的类路径中只有iCal4j-2.0-beta1.jar,并且有以下代码:

import java.io.*;
import net.fortuna.ical4j.data.*;
import net.fortuna.ical4j.model.*;

public class iCalendarSupport
{
    public static void main(String[] args)
    {
        try
        {
            FileInputStream fin = new FileInputStream("C:\\Users\\Mike\\Downloads\\basic (1).ics");
            CalendarBuilder builder = new CalendarBuilder();
            Calendar calendar = builder.build(fin);
            System.out.println(calendar.getComponent("Event").toString());

        }
        catch (Exception e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}


这是我在Eclipse中的控制台中的输出。

Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
    at net.fortuna.ical4j.util.Configurator.<clinit>(Configurator.java:51)
    at net.fortuna.ical4j.data.CalendarParserFactory.<clinit>(CalendarParserFactory.java:63)
    at net.fortuna.ical4j.data.CalendarBuilder.<init>(CalendarBuilder.java:104)
    at iCalendarSupport.main(iCalendarSupport.java:12)
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 4 more


任何帮助将非常感激。

最佳答案

Classpath缺少SLF4J(简单日志记录门面)库。你可以在这里找到它:
http://www.slf4j.org/download.html

09-25 18:50