2015-10-02 17 views
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 
+1

コマンドラインではどのようなコマンドを実行しましたか? 'sqljdbc42.jar'はファイルシステムのどこにありますか? – Tunaki

+1

IDEでプログラムを実行すると、IDEはこのjarファイルを 'classpath'に追加しますが、このプログラムを自分で実行するとエラーメッセージが表示されます。プログラムを起動するときに、このドライバjarファイルをクラスパスに追加します。 –

答えて

3

を使用してアプリケーションを実行してみてください:

java -classpath sqljdbc42.jar:Application.jar -jar Application.jar 

:を交換してくださいWindowsでは;です。

関連する問題