Получение 'Исключения в потоке "main" java.lang.NoClassDefFoundError: org/ini4j/Ini' после успешной компиляции исходного файла из CLI

Справочная информация: я пытаюсь использовать ini4j с целью анализа файлов конфигурации в формате INI.

Я запускаю команду: javac -classpath ini4j-0.5.4.jar Driver.java и компиляция проходит гладко... однако, когда я пытаюсь запустить программу, работающую: 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$1.run(URLClassLoader.java:366) at java.net.URLClassLoader$1.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, который может найти файл класса, на который ссылается ошибка, и он терпит неудачу. Я проверил файл jar ini4j и подтвердил, что файл 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();
        }
     }
}

3 ответа

Решение

Правильный ответ для моей ситуации: java -cp .: Ini4j-0.5.4.jar Driver Спасибо, что указали мне правильное направление, ребята!!!! Использование IDE заставляет забыть подобные вещи. Я очень ценю это!!!! Спасибо!!!!!

Вам также нужно указать опцию -classpath при запуске программы. Java не будет автоматически получать файлы JAR, которые вы передали при компиляции кода.

Посмотрите Elipse->Properties->JavaBuildPath->Libraries список расширенных JAR-файлов должен быть в CLASSPATH

пожалуйста, проверьте для получения дополнительной информации

Другие вопросы по тегам