Getting 'Exception in thread "main" java.lang.NoClassDefFoundError: org/ini4j/Ini' error after succesfully compiling source file from the CLI

Getting 'Exception in thread "main" java.lang.NoClassDefFoundError: org/ini4j/Ini' error after succesfully compiling source file from the CLI

背景: 我正在尝试使用 ini4j 来解析 ini 格式的配置文件。

我运行命令: javac -classpath ini4j-0.5.4.jar Driver.java 并且编译进行得很顺利......但是当我尝试 运行 程序 运行ning 时: java Driver 我收到此错误:

Exception in thread "main" java.lang.NoClassDefFoundError: org/ini4j/Ini at Clock.main(Clock.java:13) Caused by: java.lang.ClassNotFoundException: org.ini4j.Ini at java.net.URLClassLoader.run(URLClassLoader.java:366) at java.net.URLClassLoader.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:425) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoader.java:358) ... 1 more

据我了解,此错误是 jvm 能够找到错误中引用的 class 文件并失败的产物。我检查了 ini4j jar 文件并确认 Ini.class 文件确实存在。谁能告诉我我在这里错过了什么?

以下是我的源代码:

import java.util.Map;   
import java.io.IOException;
import java.io.File;
import org.ini4j.* ;
public class Driver{
    public static void main(String[] args){
        System.out.println("running in Clock-J main()");
        String fileName = "./test.ini" ;
        File fileObject = new File(fileName);
        try{
            Ini ini = new Ini(fileObject);
        }catch(IOException e){
            String exception = e.toString() ;
            e.printStackTrace();
        }
     }
}

您还需要在 运行 程序时指定 -classpath 选项。 Java 不会自动获取您在编译代码时传递的 jar 文件。

我的情况的正确答案似乎是: java -cp .:ini4j-0.5.4.jar 驱动程序 感谢您为我指出正确的方向,伙计们!!!!使用 IDE 会让人忘记这样的事情。我真的很感激!!!!谢谢!!!!!

查看Elipse->Properties->JavaBuildPath->Libraries 扩展 JAR 列表必须在 CLASSPATH

please check for more info