次のプロジェクトの内容を持つjarファイルを作成しようとしています
- 計画
- user_interface (GUI に関連するすべての .classes を含むパッケージ フォルダー)
- function_operations (操作に関連するすべての .classes を含むパッケージ フォルダー)
- サウンド (すべてのサウンド ファイルを含むフォルダ)
- アイコン (すべての画像とアイコンを含む)
- jars (すべての外部 jar ファイルを含む)
- manifest.txt (1 行 *Main-Class: user_interface.messengerGUI* と 2 つの入力)
コマンドを使用しています
jar cvfm helloBuddy.jar manifest.txt user_interface/*.class function_operations/*.class icons/ sounds/
jarファイルは正常に作成されますが、実行中に次のエラーが発生します
JAI-MATA-DI-LINUX プロジェクト # java -jar helloBuddy.jar スレッド「メイン」で例外 java.lang.NoClassDefFoundError: user_interface/messengerGUI 原因: java.lang.ClassNotFoundException: user_interface.messengerGUI at java.net.URLClassLoader$1. (URLClassLoader.java:217) で java.security.AccessController.doPrivileged(Native Method) で java.net.URLClassLoader.findClass(URLClassLoader.java:205) で java.lang.ClassLoader.loadClass(ClassLoader.java:321) で実行メイン クラス user_interface.messengerGUI が見つかりませんでした。プログラムは終了します。
別の問題は、外部ジャーを含める方法ですか?
編集済み: 最終的に jar の形成に成功しました。Eclipse を使用して、jar ファイルを作成できます。しかし、実行すると次のエラーが発生します
スレッド「メイン」の例外 java.lang.NoClassDefFoundError: org/jivesoftware/smack/ChatManagerListener 原因: java.lang.ClassNotFoundException: org.jivesoftware.smack.ChatManagerListener at java.net.URLClassLoader$1.run(URLClassLoader.java:217 ) で java.security.AccessController.doPrivileged(Native Method) で java.net.URLClassLoader.findClass(URLClassLoader.java:205) で java.lang.ClassLoader.loadClass(ClassLoader.java:321) で sun.misc.Launcher$ java.lang.ClassLoader.loadClass(ClassLoader.java:266) の AppClassLoader.loadClass(Launcher.java:294) メイン クラスが見つかりませんでした: user_interface.messengerGUI。プログラムは終了します。
プロジェクトにいくつかの外部jarファイルを含めました。org/jivesoftware/smack/ChatManagerListener このクラスは、smackx.jar ファイルの 1 つに属します。したがって、このエラーはプロジェクトに追加された外部jarファイルのものです。どうすればこれを解決できますか?