2017-08-15 4 views
0

私はnetbeansで動的なレポートをうまく使用するjavaプログラムを持っていて、最初に実行したときにexeとjarでも動作します。しかし、私がjar/exeを共有しても(私はそれを送って自分のコンピュータに再ダウンロードした)、エラーjava.lang.classnotfoundexception: net.sf.jasperreports.engine.jrdatasourceが出ます。しかし、私は私の瓶をダブルチェックして、私はこのクラスを持っています。それでは、この問題の原因は何か?動的レポートclassnotfoundexception

enter image description here

おかげ

編集:完全なエラー:

Exception in thread "main" java.lang.NoClassDefFoundError: 
net/sf/jasperreports/engine/JRDataSource 
at java.lang.Class.getDeclaredMethods0(Native Method) 
at java.lang.Class.privateGetDeclaredMethods(Unknown Source) 
at java.lang.Class.privateGetMethodRecursive(Unknown Source) 
at java.lang.Class.getMethod0(Unknown Source) 
at java.lang.Class.getMethod(Unknown Source) 
at sun.launcher.LauncherHelper.validateMainClass(Unknown Source) 
at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source) 
Caused by: java.lang.ClassNotFoundException: 
net.sf.jasperreports.engine.JRDataSource 
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) 
... 7 more 

答えて

0

あなたがしてjarファイル内Caused by: java.lang.ClassNotFoundException:を取得する場合、あなたはクラスパスの引数を提供する必要があります。
例:あなたはまた、すべてのjarファイルを提供することができます

java -cp my.jar -jar ExternalJarFileName.jar 

は、コマンドの下に使用し、唯一のディレクトリを作成し、それにして、すべての外部のjarファイルを入れて、コマンド以下のディレクトリのパスを使用する必要があります。

java -cp my.jar;C:\externalJar\* mainpackage.MainClass 
+0

これは私のコードに含まれていますか?それともコマンドプロンプトに入れますか?また、my.jarは私のプログラムのjarファイルで、externaljarfilenameはそのクラスが見つからなかったjarですよね?申し訳ありませんが、私はこれで少し新しいです。 – Evan

+0

私のコードに次のコードを追加しましたが、まだ動作しません。 ' ' try { Runtime rt = Runtime.getRuntime(); プロセスpr = rt.exec( "java -cp project.jar -jar jasperreports-6.4.0.jar"); } catch(例外e){ e.printStackTrace(); }「 」 これは私がやるべきことではないのですか、それとも何か間違っていますか? – Evan

関連する問題