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
背景: 我正在尝试使用 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