-1

我在Ubuntu上工作。我制作了使用 3 个类的简单 GUI 应用程序。Main 是包含 main 方法的 Test.class。我已经从控制台级别将它们全部打包到 JAR 中。现在我有了“kalkulator.jar”,其中包含:Test.class、MyFrame.class、MyPanel.class 和 META-INF 文件夹。在 META_INf 中有 MANIFEST.MF。MANIFEST.MF 中的内容是:“主类:测试”和换行符。现在我尝试使用以下命令从控制台打开我的 JAR:java -jar kalkulator.jar 我得到:“线程中的异常“main”java.lang.NoClassDefFoundError:测试(错误名称:myproject/Test”)myproject 是我所有类的包. 那么我该如何解决呢?

4

1 回答 1

1

您需要执行以下操作:

  1. 确保 jar 中的目录层次结构与包层次结构绝对匹配。这些类必须位于 jar 中名为“myproject”的目录中。如果他们只是处于顶级水平,那将是行不通的。

  2. 使用 main 方法使 Main-Class 名称成为类的完全限定名称。(即 myproject.Test)。

  3. 学习使用构建工具(例如 ant)来完成所有这些工作。

于 2013-01-06T20:31:21.087 回答