当前位置: 首页 > 知识库问答 >
问题:

Jar可执行文件找不到主类-奇怪的一个

裴经义
2023-03-14

你好,我有一个奇怪的问题。我正在用eclipse打包一个应用程序,以生成一个可执行的jar文件,当我运行它时,会出现错误“error cant find main class[…]”。

当我从命令行示例运行同一个包时

java-jarapp.jar

程序启动。

奇怪的是,只有在Java 7环境中编译的应用程序才会出现错误。

如果我将项目设置为java 6,一切都正常。

我应该做什么来运行Java 7 jar可执行文件?

谢谢你的帮助。

共有3个答案

尉迟景福
2023-03-14

当JVM无法定位与Jar文件相关联的主类时,就会出现此问题,JVM使用清单中的主类属性。mf识别相关的主类

似乎您没有将主类属性添加到用于创建JAr的清单文件中,http://www.skylit.com/javamethods/faqs/createjar.html可能会有帮助

邵诚
2023-03-14

您需要在清单文件中设置主类

清单文件示例

Manifest-Version: 1.0
Created-By: 1.3.1 (Sun Microsystems, Inc.)
Main-Class: com.package.MainClassName
Class-Path: oc4j.jar

确保您已经在示例jar文件中设置了所有这些内容

严阳夏
2023-03-14

检查jre的版本,如果是jre6,那么可能会有问题。尝试将jre更新为jre7,这可能会带来麻烦。。

 类似资料:
  • jar是用“meta-inf”文件夹中的清单文件创建的。清单文件(为了查看目的删除了类路径中的一些jar条目): 文件夹结构: 我正在命令提示符下使用'java-jar application.jar mypkg.main'。 有人能告诉我是什么造成的错误和如何解决它吗?

  • 我有独立的应用程序,它绑定在可执行的中。在可执行的清单文件中,有一个class-path条目,其中列出了所有依赖的(包括所有的日志实现jar)。这个可执行jar还包含文件。 使用这种结构,当我使用简单的命令运行应用程序时,应用程序在正确的日志记录下运行良好。但这里的主要问题是,要更改日志级别,需要打开jar文件,而我不能要求客户端这样做。所以我将放在了jar外部,但现在所有日志记录都发生在控制台上

  • 我已经使用netbeans制作了jar文件,使用Build和Clean项目选项。我得到了.jar文件,现在当我执行它一小段时间后,cmd窗口出现,并给出一个错误:“Could not find or load main class while executing jar file” 但是,如果我使用命令提示符Java-jar执行jar,它可以正常工作 Netbeans的输出为: 而在jar文件中,

  • 尝试将我的java应用程序从Eclipse导出到可运行的jar文件中。(这是一个控制台应用程序) 这是Eclipse中项目目录的外观: 以下是项目的运行配置: 这就是jar创建选项的外观: 最后,这是我得到的错误: 我真的试过了所有的东西,但我很困惑为什么它不运行。主类选择正确,运行配置似乎正确,我尝试了runnable和regular,两者都不起作用。 我尝试过清理、重建,甚至重新制作这个项目,

  • 问题内容: 我在程序中使用以下代码来加载属性文件: 该代码在Eclipse中运行良好。然后,将程序打包到一个名为MyProgram.jar的JAR中,然后运行它,第二行得到了NullPointerException。JAR不包含属性文件,它们都位于同一目录中。我正在使用Maven创建JAR。我该如何解决这个问题? 更新:我不想将属性文件添加到JAR中,因为它将在部署时创建。 问题答案: Balus

  • 问题内容: 我从Class.getResource()和ClassLoader.getResource()之间有什么区别? 从自己的代码 等同于 无法读取jar文件中的图像的帖子显示了使用 在可执行jar文件中返回null,而 返回正确的URL。 删除前导斜杠后的代表,我希望这些调用是相同的,但显然在这种情况下它们是不同的。即使将特殊的类加载器附加到特定的类上,对于每次调用,它也应该是相同的,再次