java jar 没有主清单_java运行jar命令提示没有主清单属性

java jar 没有主清单_java运行jar命令提示没有主清单属性在 JAVA 中将 class 文件编译成 jar 文件包 运行提示没有主清单属性 这是怎么回事 今天来教大家如何解决这个问题 1 在 java 中编译 JAR 文件的时候我们都会用到 jar 这个命令 当用着 jar 文件时候我们不可少的是 cvf 这几个参数来生成 jar 文件 但是用个文件来了 在用不使用工具的前提下我们生成的 jar 文件包后运行会出现 某某类的没有主清单属性 如下图 2 这样的问题是因为 jar 包中的 META

在JAVA中将class文件编译成jar文件包,运行提示没有主清单属性。这是怎么回事?

今天来教大家如何解决这个问题

1、在java中编译JAR文件的时候我们都会用到,jar这个命令。

当用着jar 文件时候我们不可少的是cvf这几个参数来生成jar文件。

但是用个文件来了,在用不使用工具的前提下我们生成的jar文件包后运行会出现。某某类的没有主清单属性。如下图:

d7a745ba1b2bc2d9e745bfd7226e8c06.png

2、这样的问题是因为,jar包中的META-INF文件夹下的MANIFEST.MF文件缺少定义jar接口类。说白了就是没有指定class类。这里说明一下MANIFEST.MF就是一个清单文件,通俗点将就相当于WINDOWS中ini配置文件。用来配置程序的一些信息,所以才造成这样的问题。

3、解决这个问题的方法就是要在MANIFEST.MF文件中添加一个入口类。即需要一个Main-Class定义行。更详细的MANIFEST.MF文件定义说明,请参考官方MANIFEST.MF文件定义手册。

下面是一个的MANIFEST.MF文件信息:

ce4621b14bb1bccd12d17165c64657e6.png

这个问题的最更本原因就如提示一样,没有主清单属性。所以解决办法很简单。就是在MANIFEST.MF添加入口。首先找到你的jar文件

d69649760e3f33e16ff04a1114038934.png

之后双击打开jar文件,你的电脑需要安装有winrar。或者其他压缩工具。 之后,再双击打开这个文件夹META-INF

2fc6190ad1d5909e4aba345de3568eb6.png

再选择MANIFEST.MF文件,用记事本打开它

095d500bd9d6a4a85a2ee3fcf9a38f83.png

现在看看文件中是否有Main-Class这样一行文字,如果没有的话那么添加一行。

Main-Class: gui 这里的gui是你的xxx.java文件编译后的xxx.class文件稍微名称。但是不要加.class后缀。

如果有的话,那么看下Main-Class: gui 这后面的名称是否和你的class文件名称一致。不一致请改回来。

注:这里Main-Class:要空一格写上你的class文件名。如果你没有空格的话,还是问题是解决不了的。

a716004766573304d9ae709427ffa74f.png

修改后,并保存,再次执行,一切OK。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/232022.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Python超越Java语言,跃居世界编程语言第2位了!你却还在犹豫学不学Python?

    Python超越Java语言,跃居世界编程语言第2位了!你却还在犹豫学不学Python?一、前言C、Java、Python作为常据世界编程语言排行榜的前三甲,必然有其得天独厚的优势。以下是2021年5月最新的高级编程语言排行榜,可以看到,Python已经超越Java语言跃居世界第二位,为什么Python越来越受欢迎了呢?看完以下几个例子,你就知道为什么了!二、几个案例让你想学Python2.1交换变量值Python在这里插入代码片C在这里插入代码片Java在这里插入代码片2.2筛选列表2.32.4…

    2022年5月18日
    38
  • 年中总结[通俗易懂]

    年中总结[通俗易懂]年中总结

    2022年4月25日
    50
  • linux查看网卡速率命令_linux查看网卡千兆还是万兆

    linux查看网卡速率命令_linux查看网卡千兆还是万兆1、ethtoolethtool网络接口名#ethtoolem4Settingsforem4:Supportedports:[TP]Supportedlinkmodes:10baseT/Half10baseT/Full100baseT/Half100baseT/Full1000baseT/FullSupportsauto-negotiation:YesAdvertis…

    2022年10月9日
    2
  • Java线程池-ThreadPoolExecutor原理分析与实战

    Java线程池-ThreadPoolExecutor原理分析与实战1.为什么要用线程池减少资源的开销  减少了每次创建线程、销毁线程的开销。 提高响应速度,每次请求到来时,由于线程的创建已经完成,故可以直接执行任务,因此提高了响应速度。 提高线程的可管理性,线程是一种稀缺资源,若不加以限制,不仅会占用大量资源,而且会影响系统的稳定性。 因此,线程池可以对线程的创建与停止、线程数量等等因素加以控制,使得线程在一种可控的范围内运行,不仅能保证系统稳定…

    2022年7月13日
    18
  • iis默认路径_服务器配置文件在哪

    iis默认路径_服务器配置文件在哪本文的性质为“编著”。“图形化网站管理者”请留步。 问题:当主机上的IIS服务由于各种原因无法打开时,无法看到当前系统内已经部署了哪些网站,以及其对应的目录等信息。为解决这一问题,本文通过查看IIS服务器的配置文件来获取系统内已部署网站的信息。 可能的“误导”预警:配置文件的信息与IIS的版本有关系,但本文仅为了解决问题,将操作系统与IIS版本混在了一起。 对win

    2022年9月25日
    2
  • Android获取短信验证码并自动填充的两种方式「建议收藏」

    Android获取短信验证码并自动填充的两种方式「建议收藏」有些项目为了方便客户操作,减去客户输入短信验证码的时间,会要求安卓app能够获取收到的短信验证码并自动填充到输入框。所以,我整理了安卓获取短信验证码并自动填充输入框的两种方法,而且正式在项目中使用并无bug。      一:监听短信库的变化,获取收到的短信内容,并通过正则表达式取出数字验证码填充到输入框中。代码如下:      publicclassObtainSmsVerifyC

    2022年7月25日
    89

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号