Получение 'Исключения в потоке "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
пожалуйста, проверьте для получения дополнительной информации