Java命令行编译打包
一、简介
1、介绍
本文主要记录jar与java相关命令介绍以及Java 命令行编译、执行、打包等操作
2、Jar简介
https://docs.oracle.com/javase/tutorial/deployment/jar/manifestindex.html
Java归档文件格式(Java Archive, JAR)能够将多个源码、资源等文件打包到一个归档文件中,包括以下几种优点
- 安全性
可以对整个jar包的内容进行签名。 - 减少下载时间
如果applet被打包成一个jar文件,那么所有相关的资源就可以在一个HTTP transaction中下载完成,而无需为每一个文件新建一个连接。 - 压缩
减少了磁盘空间的占用。 - 容易扩展
通过jar这种格式,可以和容易地将自己的程序打包提供给别人使用。 - 包密封(Package Sealing)
存储在jar文件中的包可以被密封,来保证版本的一致性。密封可以保证一个包中的所有类都来自同一个jar文件。 - 包版本说明
一个jar包可以存储关于其内容的信息,包括提供商、版本等。 - 可移植性
处理jar文件的机制是Java平台核心API的标准模块。
3、Java命令行
3.1 jar相关命令
1 | jar |
下面举例
1 | #查看归档文件的内容 |
3.2 Java相关命令
1 | 用法: java [-options] class [args...] |
二、简单编译打包实战
1、简单编译执行
首先创建好目录已经demo文件
1 | package com.demo; |
编译执行
1 | # -d target 参数,指定 class 文件生成在 target 目录 |
2、Jar包方式运行
2.1 普通方式执行
Java程序打包与执行
1 | # -C target . 参数,指定把 target 目录下的所有文件打包 |
2.2 可执行的 jar 包
可执行jar包可以直接执行,无需指定入口,但是需要创建MANIFEST.MF
文件在文件内说明程序入口;
一般编写MANIFEST.MF文件只需要用到Manifest-Version(MF文件版本号)、Main-Class(包含main方法的类)、Class-Path(执行这个jar包时的ClassPath,第三方依赖),详情可以参考
MANIFEST.MF文件解释
1 | #注意最后一样一定要回车,空一行,不然无法识别最后一行的配置 |
之后再次打包
1 | # 添加了 m 参数,指定 MANIFEST.MF,这个文件的内容会被添加到 jar 包的清单,用于说明 my.jar 的入口 |
参考文章
https://www.cnblogs.com/eoalfj/p/12332808.html
https://www.jianshu.com/p/61cfa1347894