java命令行生成jar_命令行生成可执行的jar包
jar包
jar包分类
jar包分为可执行jar包和不可执行jar包
jar包解压后都有一个META-INF/MANIFEST.MF文件
可执行jar包和不可执行jar包的区别是MANIFEST.MF文件里有主类入口配置:Main-Class: com.example.MyClass
注意MANIFEST.MF配置后的冒号后有空格
可执行jar包,直接双击就可以运行,或者同目录下cmd中执行命令:java -jar jar包名.jar
如何生成jar包
(1)javac编译java文件
javac Hello.java
(2)将编译后的Hello.class文件打成jar包
jar -cvf hello.jar Hello.class
c表示要创建一个新的jar包,v表示创建的过程中在控制台输出创建过程的一些信息,f表示给生成的jar包命名
(3)运行jar包
java -jar hello.jar
这时会报如下错误 hello.jar中没有主清单属性
添加Main-Class属性
用压缩软件打开hello.jar,会发现里面多了一个META-INF文件夹,里面有一个MENIFEST.MF的文件,用记事本打开
1 Manifest-Version: 1.0
2 Created-By: 1.8.0_121 (Oracle Corporation)
3
在第三行的位置写入 Main-Class: Hello (注意冒号后面有一个空格,整个文件最后有一行空行),保存
再次运行 java -jar hello.jar ,此时成功在控制台看到 hello ,成功
附:
1 如果有多个java文件,则在编译的时候同时编译,然后将多个class文件同时打包,后续过程相同
2.如果多个java文件不在同一个文件夹,此时需要注意,他们编译后的class还在各自的文件夹,可以
javac A.java bbb/B.java -d target
编译到一个相同的文件夹
3.如果想加入jar,则在编译的时候
javac -cp A.jar B.java
并且在最终生成的jar包中修改MENIFEST.MF,在MENIFEST.MF文件中配置一个新属性:Class-Path,路径指向你需要的所有jar包,引入多个jar包,中间用空格隔开
1 Manifest-Version: 1.0
2 Created-By: 1.8.0_121 (Oracle Corporation)
3 Main-Class: B
4 Class-Path: A.jar
5
4.有的时候我们是在一些集成开发环境中拷贝一些java文件,编译出来的class文件是带着包名的,所以要在jar包中创建相应目录,把class文件移入相应的目录,并且修改MENIFEST.MF
1 Manifest-Version: 1.0
2 Created-By: 1.8.0_121 (Oracle Corporation)
3 Main-Class: com.example.lib.Main
4 Class-Path: A.jar
5
7.想读取jar包内的资源文件,getClass().getResourceAsStream("a.txt")的方法读取输入流
java命令行生成jar_命令行生成可执行的jar包相关推荐
- java 命令行 编译 jar文件_用命令行编译java并生成可执行的jar包
如果想用java编写一个可视化小程序,碰巧手头没有IDE的话,可以用命令行来完成编译.打包等工作. 拿自己编写的"java记事本"为例,介绍一下这个过程: 1.编写源代码. 编写源 ...
- 用命令行编译java并生成可执行的jar包
1.编写源代码 编写源文件:CardLayoutDemo.java并保存,例如:I:\myApp\CardLayoutDemo.java.程序结构如下: package test;import jav ...
- Java jar命令打可执行的jar包
基础文件结构 ├── MANIFEST.MF ├── Main.class ├── Main.java └── com └── javartisan ├── Main.clas ...
- java命令依赖第三方jar原理_java命令执行带jar包依赖的文件执行不了
import org.apache.commons.io.FilenameUtils; public class Test { public static void main(String[] arg ...
- java 包依赖_java命令执行带jar包依赖的文件执行不了
import org.apache.commons.io.FilenameUtils; public class Test { public static void main(String[] arg ...
- (转)通过maven,给没有pom文件的jar包生成pom文件,maven项目引入本地jar包
文章完全转载自 : https://blog.csdn.net/qq_31289187/article/details/81117478 问题一: 经常遇到公司私服或者中央仓库没有的jar包,然后通过 ...
- Idea打Jar包并生成exe文件(三:Idea打Jar包)
转载自:https://blog.csdn.net/dominic_z/article/details/82791790 我们先看看实例项目 这个项目里包括 一个数据文件,位于'data/data' ...
- java 将应用程序打成可执行的JAR包,然后使用批处理方式运行
1. jar 命令详解 jar 是随 JDK 安装的,在 JDK 安装目录下的 bin 目录中,Windows 下文件名为 jar.exe,Linux 下文件名为 jar.它的运行需要用到 JDK 安 ...
- java web文件上传所需要的commons-fileupload和 commons-io jar包
文章目录 一.官网获取 二.百度网盘分享 三.分享与热爱 一.官网获取 学习java web文件上传时需要用到两个必备的jar包: commons-fileupload commons-io jar ...
最新文章
- POJ-1185 炮兵阵地 动态规划+状态压缩
- python编程入门到实践答案-Python编程:从入门到实践
- 《Objective-c》-(description方法)
- u盘魔术师装linux,使用U盘魔术师安装Win7系统教程
- cdrx8如何批量导出jpg_SU基础教程——如何批量导出效果图
- 加时间水印_如何在手机照片上添加时间和日期?打开这个设置即可添加,超方便...
- c ++向量库_将向量复制到C ++中的另一个向量
- 相机标定方法机理总结与公式推导(Camera calibration)
- 蓝桥杯 BASIC-26 基础练习 报时助手
- python 之selectors 实现文件上传下载
- Freeswitch拨号响应太慢的解决办法
- Matlab命令系列之目录操作
- CondaHTTPError: HTTP 000 CONNECTION FAILED for url ...... 解决过程
- 一键发圈,一键转发到微信朋友圈或者微信好友
- 为什么有的python内置函数怎么就一个pass?
- 【程序思考】人穷志短,千古名言
- 单片机推挽输出c语言,单片机IO口科普:推挽输出、开漏输出详解
- 《英语(二)》作文案例
- angular拖动插件——ng-drag、ng-drop
- 普渡大学利用深度学习自动检测核反应堆裂缝
热门文章
- 智能车竞赛技术报告 | 智能车视觉 - 首都师范大学 - 首师智能视觉
- 第十六届全国大学智能车竞赛全国总决赛竞速组别成绩与奖项
- 150kHz无线导航信号接收板调试-Ver2
- 2021年春季学期-信号与系统-第八次作业参考答案-第十二小题
- linux异常断电usb驱动丢失,如何修复Linux中损坏的USB驱动器 | MOS86
- vba 修改access表的链接地址_VBA中常用的这7种数据类型,你都get到了吗?
- 科技边框_智能手机窄边框喷射点胶机欧力克斯
- 不同品牌android手机ui,各大安卓手机品牌里,系统UI设计对比,谁赢了?
- java 不知道键值名_java-如果您知道曲线名称和原始私钥/点,如...
- androidwakelock_Android中的WakeLock