6
私はIntelliJ Idea
を使用しています。私は自分のアプリケーションを構築し、それを.jar
ファイルとして作成しました。このプログラムは、データベースドライバとして外部の.jar
ファイルを使用します。ClassNotFoundException外部のjarを使用している場合
私はIDEからプログラムを実行すると、正常に動作します。
Exception in thread "main" java.lang.NoClassDefFoundError: com/microsoft/sqlserver/jdbc/SQLServerException
at ca.vdts.dbupdate.Main.main(Main.java:10)
Caused by: java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerException
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
sqljdbc42.jar
ファイルのディレクトリがマニフェストにある:私はIDEの外で私の.jar
ファイルを実行しようとすると、それは次の例外を報告します。 私はWindows上にいるので、これを実行するには '.jar'ファイルをクリックしてください。 アプリケーションの.jarファイルとsqljdbc42.jarファイルは、両方とも同じディレクトリにあります。コマンドラインで、...
C:\Users\admin\IdeaProjects\DBUpdate\out\artifacts\DBUpdate>java -classpath .\sqljdbc42.jar;DBUpdate.jar -jar DBUpdate.jar
を実行する...同じエラーで結果:
Exception in thread "main" java.lang.NoClassDefFoundError: com/microsoft/sqlserver/jdbc/SQLServerException
at ca.vdts.dbupdate.Main.main(Main.java:10)
Caused by: java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerException
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 1 more
コマンドラインではどのようなコマンドを実行しましたか? 'sqljdbc42.jar'はファイルシステムのどこにありますか? – Tunaki
IDEでプログラムを実行すると、IDEはこのjarファイルを 'classpath'に追加しますが、このプログラムを自分で実行するとエラーメッセージが表示されます。プログラムを起動するときに、このドライバjarファイルをクラスパスに追加します。 –