zoukankan      html  css  js  c++  java
  • 使用jar命令打jar/war包、创建可执行jar包、运行jar包、及批处理脚本编写

    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文件已经生成。

    运行 jar 包
    jar包打好后,设置classPath的为xxxyyy.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"。

     
  • 相关阅读:
    Docker镜像和容器
    Docker介绍
    Ansible实战:部署分布式日志系统
    Ansible之roles介绍
    Ansible之tags介绍
    Ansible之迭代、模板
    linux jenkins安装(四)
    linux maven安装(三)
    linux tomcat安装(二)
    linux JDK安装(一)
  • 原文地址:https://www.cnblogs.com/Mike_Chang/p/6848755.html
Copyright © 2011-2022 走看看