jar 命令
jar 是一个jar.exe可执行命令,即可以生成jar文件,也可以生成war文件
 
使用示例:jar -cvf ../xxx.jar * 
-c   create,创建新的归档文档
-v   view,在标准输出中生成详细输出
-f    file,指定归档文件名
 
xxx.jar 是指定的jar文件名 
* 把当前目录下所有的文件及其子目录下所有的文件打进jar包 
 
另外,如果要创建可执行的jar文件,可以使用 -m 来指定MANIFEST.MF文件

打 jar 包
1、在cmd窗口切换到最上层包目录的父目录
  比如,在桌面有一个项目文件夹Hello,打开它,看到最上层包名com,就在这个地址栏输入cmd
2、打jar包输入:
    jar -cvf ../xxx.jar * (不输入v也可以)
   打war包输入:
    jar cvf ../xxx.war *
3、在相应目录下可以看到jar或war文件已经生成。
 
从中可以发现 war 和 jar 包的区别仅仅是文件名不同而已。

运行 jar 包
jar包打好后,设置classPath的为xxx\yyy.jar,然后在命令行的任何路径都可以执行java 命令运行它,前提条件是jar 包里有main方法。
例如java com.xxx.Zzz。打包和不打包一样,访问某个class 文件的方法都一样。
这样运行的方式,前提是必须先把jar文件的保存路径设置为ClassPath。下面介绍一种不需要设置ClassPath,打包后可直接运行的打包方式。

创建可执行的jar文件
项目链接:https://files.cnblogs.com/files/Mike_Chang/example.rar 

1、在IDE里打包一个 jar 项目

2、到 target 目录下复制出jar包,可以把这个 jar 包的名字修改

3、解压,打开 META-INF/MANIFEST.MF(如果没有,自己创建一个META-INF文件夹,创建一个MANIFEST.MF的文件),在最后一行添加内容如下:

  Main-Class: com.test.HelloWorld(类的全路径名,后面不要以.class结尾)

注意:

  (1)Class:后面,也就是冒号后面要添加一个空格,否则会打包时会出现异常 Java.io.IOException: invalid header field

  (2)行末要添加一个回车,否则我们输入的这一行不能打包进去

4、在cmd窗口切换到项目目录,执行命令:

  jar cvfm ../Hello.jar META-INF/MANIFEST.MF *

  f 对应 Hello.jar,Hello.jar 可以自定义名称

  m 对应 META-INF/MANIFEST.MF

  * 表示打包当前目录里所有的文件,及子目录里的文件

5、在当前目录执行命令运行:

  java -jar Hello.jar


批处理文件运行

上面两种方式都是在命令行方式运行jar文件,还可以使用批处理文件的方式运行。

批处理文件实际上就是把在命令行输入的命令提前写到一个文件里,运行时双击这个批处理文件就可以执行了。

批处理文件名以.bat结尾

内容示例如下:

@echo off
cd/d %~dp0
java -jar Hello.jar
echo "OK"
pause

第一行和最后一行是固定格式,作用是——双击批处理文件后,弹出的命令行窗口不自动关闭,等我们按任意键后才关闭;

第二行,是切换为当前目录,%~dp0 代表当前目录

第三行,是标准输出字符串“OK"。

 

最新文章

  1. XD, XR, DR 股票
  2. Servlet的配置
  3. paip.java swt 乱码问题解决
  4. IOS应用沙盒文件操作
  5. 异步fifo的设计
  6. xpath基础知识
  7. linux 的开机启动脚本顺序
  8. TCP/IP TIME_WAIT状态原理
  9. 移动平台的meta标签-----神奇的功效
  10. 蓝牙RSSI计算距离
  11. SSH2中实例化不了Action的一个原因
  12. css3实现图片遮罩效果鼠标hover以后出现文字
  13. 笔记-Nodejs中的核心API之Events
  14. svn: E200007: CHECKOUT can only be performed on a version resource
  15. JavaScript Concurrency model and Event Loop 并发模型和事件循环机制
  16. composer相关使用
  17. knockoutjs关于ko.bindingHandlers的updata订阅
  18. 驱动链表(LIST_ENTRY)
  19. [UE4]删除动画:Remove from frame 5 to frame 18
  20. highcharts绘制股票k线

热门文章

  1. windows本地调试安装hadoop(idea) : ERROR util.Shell: Failed to locate the winutils binary in the hadoop binary path
  2. 【数组】Game of Life
  3. web与app测试的区别
  4. android 判断service是否正在运行
  5. HUE配置文件hue.ini 的hbase模块详解(图文详解)(分HA集群和非HA集群)
  6. centos 关闭selinux 临时关闭selinux 报错 setenforce: setenforce() failed
  7. Pelican+Github博客搭建详细教程
  8. springboot-13-junitTest
  9. MySQL的各种join
  10. python分布式爬虫打造搜索引擎--------scrapy实现