好问题
Good  Question
  • 首 页
  • 问题
    • PHP
    • JAVA
    • CPlusPlus
    • C#
    • SQL
  • 关 于
  • 联 系
不能执行jar:“no main manifest attribute” 关闭 返回上一级  

不能执行jar:“no main manifest attribute”
+ 查看更多

发布日期:2018-03-26 10:38
分类:JAVA
浏览次数:407
问题描述:我想要安装jar,点击没有任何反应,当我使用java -jar "app.jar"命令时,提示“no main manifest attribute”¶

回答:
首先,执行jar不是java -jar app.jar而是@java -jar "app"

其次,你需要叫META-INF/MANIFEST.MF文件让你的jar是可执行的,文件本身至少有这行:
Main-Class: com.mypackage.MyClass
com.mypackage.MyClass 保存主函数进入点
有几种方式得到他通过CLI, Maven 或者 Ant:
CLI, 使用以下命令: 
jar cmvf META-INF/MANIFEST.MF .jar  
Maven, 像这样的小片段可以做这个,需要注意的是这只是个小片段并不是完整的 pom.xml:
<build>
  <plugins>
    <plugin>
      <!-- Build an executable JAR -->
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-jar-plugin</artifactId>
      <version>3.0.2</version>
      <configuration>
        <archive>
          <manifest>
            <addClasspath>true</addClasspath>
            <classpathPrefix>lib/</classpathPrefix>
            <mainClass>com.mypackage.MyClass</mainClass>
          </manifest>
        </archive>
      </configuration>
    </plugin>
  </plugins>
</build>
Ant, 像这样的小片段将会是有用的:
<jar destfile="build/main/checksites.jar">
  <fileset dir="build/main/classes"/>
  <zipfileset includes="**/*.class" src="lib/main/some.jar"/>
  <manifest>
    <attribute name="Main-Class" value="com.acme.checksites.Main"/>
  </manifest>
</jar>
上一篇从输出流中得到字符串
在Java中如何将日期增加一天?下一篇
下一篇在Java中如何将日期增加一天?

最新文章

  • 函数`__construct`用来干嘛的
    发布日期:2018-03-26
  • 通过访客的IP得到他们的地区
    发布日期:2018-03-26
  • 合并两个PHP对象的最好的方法是什么?
    发布日期:2018-03-26
  • 该如何把一该如何把一个对象转化成数组?
    发布日期:2018-03-26
  • 什么是输出缓冲区?
    发布日期:2018-03-26
  • 在PHP中怎么把用逗号分隔的字符串分隔在一个数组里?
    发布日期:2018-03-26
  • 在PHP中使用foreach循环时查找数组的最后一个元素
    发布日期:2018-03-26
关于好问
收集整理一些有用的问题和回答,造福中国的程序旺和IT喵们!
友情链接
起飞页 
相关信息
版权声明
Copyright © 2016 - 2017  苏州卡达网络科技有限公司 好问 GOODQ.TOP 备案号:苏ICP备09008221号-5