背景: ini 形式の構成ファイルを解析する目的で ini4j を使用しようとしています。
次のコマンドを実行します: 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がエラーで参照されているクラスファイルを見つけて失敗したことの産物です。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();
}
}
}