将工作程序转换为可执行JAR时出现的问题

将工作程序转换为可执行JAR时出现的问题,jar,manifest,Jar,Manifest,当我将我的(正在工作的)java转换成可执行的jar文件时,我遇到了问题 我有一个非常简单的数字排序程序写的。它分布在两个文件(TreeGui.java和SortTree.java)中,每个文件都或多或少地执行它们所说的操作。TreeGui有一个输入文本区、一个按钮和一个输出区。按下按钮将输入文本传递到SortTree,它返回显示在输出框中的经过良好排序的数字 当我编译每个文件,然后运行TreeGui时,一切正常 javac TreeGui.java javac SortTree.java ja

当我将我的(正在工作的)java转换成可执行的jar文件时,我遇到了问题

我有一个非常简单的数字排序程序写的。它分布在两个文件(TreeGui.java和SortTree.java)中,每个文件都或多或少地执行它们所说的操作。TreeGui有一个输入文本区、一个按钮和一个输出区。按下按钮将输入文本传递到SortTree,它返回显示在输出框中的经过良好排序的数字

当我编译每个文件,然后运行TreeGui时,一切正常

javac TreeGui.java
javac SortTree.java
java TreeGui
…一切都很好

现在,当我尝试将这些类放入jar文件时,我不断遇到同样的问题。我有一个清单(TreeGuiManifest.txt),其中包含以下内容(以及一个空白新行):

但当我把所有的东西放在一起时:

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)
等等等等。 很明显,在SortTree代码中查找按TreeGui中的按钮所需的元素很困难,但我不确定我能做些什么来让它工作

我是不是错过了一些很明显的东西?我正在使用各种导入的java.utils。*;等等,当我制作jar文件时,我必须提到它们吗?谢谢你的帮助

(我没有在这里粘贴程序的实际代码的唯一原因是,当它不是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)