(動作中の) Java を実行可能な jar ファイルに変換すると、問題が発生します。
非常に単純な数値ソートプログラムを作成しました。これは 2 つのファイル (TreeGui.java と SortTree.java) に分散されており、それぞれが多かれ少なかれその内容を実行します。TreeGui には、入力テキスト領域、ボタン、および出力領域があります。ボタンを押すと、入力テキストが SortTree に渡され、適切にソートされた数値が出力ボックスに表示されます。
各ファイルをコンパイルしてから TreeGui を実行すると、すべて正常に動作します
javac TreeGui.java
javac SortTree.java
java TreeGui
...すべてを素敵に実行します。
さて、これらのクラスをjarファイルに入れようとすると、同じ一連の問題にぶつかり続けます。次の(および空白の改行)を含むマニフェスト(TreeGuiManifest.txt)があります。
Main-Class: TreeGui
しかし、私がすべてをまとめると:
jar cmf TreeGuiManifest.txt TreeGui.jar TreeGui.class SortTree.class
私は問題にぶつかりました。jarファイルを選択して直接実行するか、コンソールで「java -jar TreeGui.jar」を使用して実行するかに関係なく、プログラムは正常にロードされますが、ボタンが押された瞬間に、このように開始して続行する文字列全体がスローされます長い道:
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: SortTree TreeNode
at SortTree.treeInsert(SortTree.java:35)
at SortTree.main(SortTree.java:24)
at TreeGui.actionPerformed(TreeGui.java:66)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
などなど。 TreeGui のボタンを押す必要がある SortTree コード内の要素を見つけるのは明らかに苦労していますが、それを機能させるために何ができるかわかりません。
本当に明らかな何かが欠けていますか?インポートされたさまざまな java.utils.*; を使用しています。など、jarファイルを作成するときにそれらに言及する必要がありますか? 助けてくれてありがとう。
(ここにプログラムの実際のコードを貼り付けていない唯一の理由は、Jar ファイルではない場合にすべてが完全に機能するためです...ただし、必要に応じて喜んで追加します)