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

Java jar文件“无主清单属性”

陆洛城
2023-03-14

首先,我看了关于这个话题的类似问题。我还没有找到解决办法。

我想把我一直在做的一个小项目分发给朋友和家人。问题是我不能指望他们都能跑。类文件。因此,我正在努力创造一个新的世界。jar文件,我可以将其转换为。exe文件。然而,我遇到了一个问题。它抱怨缺少主清单属性。在谷歌搜索之后,我决定尝试一个小教程。我正在遵循教程(甚至下载了Hello.jar小文件),但仍然没有获得主清单属性。

当我运行Windows 10时,我使用PowerShell运行命令。以下是我运行的命令:

PS C:\testJarFraNettet> javac Hello.java
PS C:\testJarFraNettet> jar cmf Hello.mf Hello.jar Hello.class Hello.java
PS C:\testJarFraNettet> java -jar Hello.jar
no main manifest attribute, in Hello.jar
PS C:\testJarFraNettet>

你会注意到我已经包括了。中的java文件。还有罐子,只是为了确定。

你好mf包含:

Manifest-Version: 1.0
Main-Class: Hello

我调查了这件事。生成的jar文件。在命令中指定的文件中,我找到了预期的。\META-INF\MANIFEST。包含以下内容的MF文件:

Manifest-Version: 1.0
Created-By: 17.0.1 (Eclipse Adoptium)

我从未接触过Eclipse(我使用VS代码),但我认为这并不重要。根据我在网上找到的另一篇文章,我编辑了该文件,以包含教程告诉我应该包含的内容:

Manifest-Version: 1.0
Main-Class: Hello

仍然没有运气。我决定不显示我自己的代码,因为它不必要地使故障排除复杂化,因为无论如何我都会遇到同样的错误。我仍然有一些障碍,例如如何添加图像文件。该项目是一个基于GUI的游戏。但我想这是以后的问题。

谢谢你抽出时间!

共有1个答案

壤驷涛
2023-03-14
jar cfe Hello.jar Hello Hello.class Hello.java

我会帮你的。您需要将-e参数指向主类,以便jar知道如何使其可执行。这比你自己做清单要容易

 类似资料:
  • 我知道有很多像这样的题目,但我没有找到答案我的问题。我已经在IntelliJ中创建了JAR文件,并在项目结构中构建了工件。在Java文件夹中,我有一个包META-INF和manifest.mf: 那么我是否应该将它手动添加到IntelliJ中的JAR中呢? Edit:CrazyCoder给出了一个很好的说明,说明META-INF应该在resourse文件夹中,但是我的IntelliJ默认设置一开始

  • 当运行我的jar文件:java-jar target/places-1.0-snapshot.jar时,我得到了下一个错误: 我的pom.xml包含spring-boot-maven-plugin: 知道我还能试试什么吗?

  • 我已经看了几个不同的线程,没有找到解决方案。我做了一个项目,使用java和Gradle从google sheets检索数据。我已经创建了一个工件,并通过IntelliJ构建了jar文件。当我尝试使用“java-jar filename.jar”通过终端运行jar时,我得到“no main manifest attribute,in filename.jar” My Manifest.mf位于mai

  • 我有一个google cloud app engine应用程序,这个应用程序是用Java11实现的,并且可以编译它。但由于某种原因,当我将I部署到app engine上时,google无法创建此应用程序的实例。

  • 我对这个问题很困惑。在运行这段代码的前几次,它没有发生,但在那之后,我无法让它再次运行。它只有在使用我的Java代码下载后才会崩溃。我的代码从我的网站下载了一个jar文件,然后使用ProcessBuilder运行它。最初几次都很好,但我又运行了几次,它开始给我带来了好处 没有主清单属性,在。。。\AppData\Local\GDRQ\bin\launch\u gdbotbin。罐子 下面是我用来下

  • 当项目从IDE执行时,是如何创建的,以便真正运行Hello world类型的控制台应用程序? 显然,只需要为清单指定条目。 只需关注阶段: 运行Maven工具Maven阶段 虽然不是一个全面的列表,但这些是执行的最常见的默认生命周期阶段。 验证:验证项目是否正确,所有必要的信息是否可用编译:编译项目的源代码测试:使用合适的单元测试框架测试编译的源代码。这些测试不应该要求将代码打包或部署到包中:将编