有时候我们需要在命令行下运行Jar包, 而一个Jar包通常会依赖其他的jar包,这样每次命令行运行时都需要将依赖的jar包classpath, 还有指定main方法的类全限定名称, 特别费尽,最近发现可以用MANIFEST.MF文件解决上面的问题

在MANIFEST.MF文件中指定Main-Class和Class-Path就可以在运行命令时不需要指定依赖的Jar包,和main方法的全限定类名

运行时之需要:

java -jar xxxxx.jar param1 param2

xxxxx.jar代表你要运行的jar包,param1, param2代表需要传入的参数,如果不需要参数,就不用写

如果是用maven创建的项目,可以在pom.xml中添加如下的maven插件配置:

<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-jar-plugin</artifactId><version>3.1.0</version><configuration><archive><manifest><useUniqueVersions>0.0.1</useUniqueVersions><mainClass>com.isoftstone.hag.Hag</mainClass><addClasspath>true</addClasspath><addDefaultImplementationEntries>true</addDefaultImplementationEntries><addDefaultSpecificationEntries>true</addDefaultSpecificationEntries><addExtensions>true</addExtensions><classpathPrefix>lib/</classpathPrefix></manifest><addMavenDescriptor>true</addMavenDescriptor></archive><!--方式二 <archive><manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile></archive> --></configuration>
</plugin>

主要设置<mainClass>、<addClasspath>、<classpathPrefix>,其他的根据需要可以自行设置,<classpathPrefix>作用是设置依赖jar包所存放的位置, 也可以使用方式二在src/main/resources/META-INF/下建立MANIFEST.MF文件,打包时maven会用这个文件。

关于MANIFEST.MF的格式编写规范可以自己百度一下,这里也提供一个别人写好的关于MANIFEST.MF的介绍:

MANIFEST.MF的介绍:https://www.cnblogs.com/EasonJim/p/6485677.html

MANIFEST.MF文件相关推荐

  1. MANIFEST.MF文件的格式

    MANIFEST.MF文件的格式 1. 基本格式 属性名称+:+空格+属性值 2. 没行最多72个字符,换行继续必须以空格开头 3. 文件最后必须要有一个回车换行 4. Class-Path 当前路径 ...

  2. MANIFEST.MF文件全面解析

    (一)简介 当我们用Jar命令打完包后,会在根目录下面创建META-INF目录,该目录下面会有一些对该Jar包信息的描述,其中肯定会有一个MANIFEST.MF文件,该文件包含了该Jar包的版本.创建 ...

  3. Java 打 jar 包时,MANIFEST.MF 文件详解

    具体详情,详见<MANIFEST.MF文件详解> manifest.mf 的编写规则 不能有空行和空格的地方 第一行不可以是空行(第一行的行前不可以有空行),行与行之间不能有空行,每行的行 ...

  4. Springboot读取jar包中的MANIFEST.MF文件内容

    Springboot打包成可执行jar包后,包结构如下所示: 工程编译后的文件都在BOOT-INF/classes目录下,如果需要读取并显示META-INF/MANIFEST.MF文件内容,那么可以用 ...

  5. JAR包中的MANIFEST.MF文件详解以及编写规范

    JAR包中的MANIFEST.MF文件详解以及编写规范 参考百度百科的解释如下: http://baike.baidu.com/item/MANIFEST.MF MANIFEST.MF:这个 mani ...

  6. meta-inf文件夹以及MANIFEST.MF文件的作用

    meta-inf相当于一个信息包,目录中的文件和目录获得Java 2平台的认可与解释,用来配置应用程序.扩展程序.类加载器和服务 manifest.mf文件,在用jar打包时自动生成的. META-I ...

  7. MANIFEST.MF文件详解

    文章目录 一. 一般属性 二. 应用程序相关属性 三. 小程序(Applet)相关属性 四. 扩展标识属性 五. 包扩展属性 六. 签名相关属性 七.自定义属性 JAR 文件是什么? META-INF ...

  8. manifest java_JAR包中的MANIFEST.MF文件详解以及编写规范

    参考百度百科的解释如下: MANIFEST.MF:这个 manifest 文件定义了与扩展和包相关的数据.单词"manifest"的意思是"显示" 打开Java ...

  9. Idea打包jar,MANIFEST.MF文件没有Main-Class属性 xxx.jar中没有主清单属性

    Idea打包jar 下图中圈出来的路径不能是默认的,需要放在项目根路径下,修改为:D:\IntelliJIdea\project\MyFtpServer\META-INF\MANIFEST.MF. 修 ...

最新文章

  1. mdk编译后的HTML,[转载]keil MDK编译完成后,Program Size:
  2. Centos7设置IP为固定值
  3. Redis学习笔记(八)——持久化
  4. 云级Key-value数据库大比较
  5. CentOS 7从Python 2.7升级至Python3.6.1
  6. An internal error occurred while showing an internal error.
  7. 三维重建18: 图像深度获取
  8. Java数组排序解码
  9. python函数 global_Python global全局变量函数详解
  10. RTX5 | 配置文件RTX_Config.h(一)
  11. 动物和计算机-自组织是悬空的钢丝
  12. 【英语学习】【Daily English】U15 Culture L01 You'll be used to life here before long
  13. 【Elasticsearch】如何管理 Elasticsearch 文档中的嵌套对象
  14. 动态规划 BZOJ2287【POJ Challenge】消失之物
  15. 窗口启动特效,使用win32 api
  16. Quartz数据库存储
  17. 如何获取EasyCVR平台设备通道的RTMP视频流地址?
  18. C++实现九宫格输入法T9密码解密
  19. 世界期货市场竞争格局的变迁
  20. 关于window简体中文环境文件路径包含7种横杠的问题,及结论推广

热门文章

  1. 10个最佳价格行动交易模式
  2. Vue前端页面跳转,登录成功跳转页面
  3. 【游戏思路】制作简单小游戏实现思路总结
  4. 16进制转字符串的简单实现
  5. TSINGSEE青犀视频再度荣获腾讯云+社区2022年度优秀作者!
  6. Mathtype 6.9 公式编辑时出现一些符号显示为方框
  7. 【NI Multisim 14.0原理图的设计——简单电路设计】
  8. 【NI Multisim 14.0原理图设计基础——查找元器件】
  9. 多个输入框失焦事件触发异常问题解决
  10. python画画用哪库好_Python我要学画画-turtle库