【问题标题】:How to create a .jar file that actually runs?如何创建一个实际运行的 .jar 文件?
【发布时间】:2012-05-27 02:22:00
【问题描述】:

我在创建 .jar 文件时遇到了很多麻烦。每次我尝试创建它时,都会弹出一个错误窗口并说找不到主类 Start 。 (我的主要课程名为 Start)我有一个清单,你能告诉我我做错了什么,或者告诉我到底做了什么?这可以来自命令提示符,也可以来自 eclipse!

有时命令提示符窗口会弹出一毫秒然后立即关闭!

我的清单说:

Manifest-Version: 1.0
Main-Class: Start

我的主要课程是 Start.class

【问题讨论】:

  • 清单中有什么,jar 文件(jar tvf)中有什么,带有 main() 的类的全名是什么?
  • 您是否考虑过您的包裹?
  • “我有一个清单和一切” 比模糊的声明更好的是内容的复制/粘贴列表(由 Jar 命令完成)。
  • “有时命令提示符窗口会弹出一毫秒然后立即关闭!” 使用类似>java -jar the.jar 的命令从命令行运行 Jar。它仍然会崩溃,但应该将输出转储到控制台。复制/粘贴输出作为编辑(连同 Jar 结构)。
  • 请您停止快速编辑问题,以致于您将我的编辑内容全部删除?我已经修复了清单列表一次!

标签: java jar executable-jar classnotfound


【解决方案1】:

这是我对您的模糊问题的模糊回答。它可以是各种各样的东西。但最可能的情况是您在包中声明了 Start 类,而没有将完全限定的类名放在清单中。

假设你声明 Start 类的包是foo.bar.lazy,你需要给Main-Class: foo.bar.lazy.Start

【讨论】:

  • 声明从哪里开始?我这样做吗? src.robert.Start?
  • 在您的 Start 源文件的顶部,它们将类似于 package foo.bar.lazy;你需要把什么放在那里。阅读此en.wikipedia.org/wiki/Java_package 了解有关软件包的更多信息。
  • 我没有看到任何叫做 foo.bar.lazy 的东西!这应该在清单中吗?
  • 我不确定你是不是在开玩笑,但是......他并不是说你真的应该看到 foo.bar.lazy (heh) - 你应该看到你的 main 的完全限定名称班级。 Foo 和 bar 经常被程序员用作类名来表达观点。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-17
  • 1970-01-01
  • 1970-01-01
  • 2011-03-16
  • 2014-04-09
  • 1970-01-01
相关资源
最近更新 更多