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包相关推荐

  1. java 命令行 编译 jar文件_用命令行编译java并生成可执行的jar包

    如果想用java编写一个可视化小程序,碰巧手头没有IDE的话,可以用命令行来完成编译.打包等工作. 拿自己编写的"java记事本"为例,介绍一下这个过程: 1.编写源代码. 编写源 ...

  2. 用命令行编译java并生成可执行的jar包

    1.编写源代码 编写源文件:CardLayoutDemo.java并保存,例如:I:\myApp\CardLayoutDemo.java.程序结构如下: package test;import jav ...

  3. Java jar命令打可执行的jar包

    基础文件结构 ├── MANIFEST.MF ├── Main.class ├── Main.java └── com     └── javartisan         ├── Main.clas ...

  4. java命令依赖第三方jar原理_java命令执行带jar包依赖的文件执行不了

    import org.apache.commons.io.FilenameUtils; public class Test { public static void main(String[] arg ...

  5. java 包依赖_java命令执行带jar包依赖的文件执行不了

    import org.apache.commons.io.FilenameUtils; public class Test { public static void main(String[] arg ...

  6. (转)通过maven,给没有pom文件的jar包生成pom文件,maven项目引入本地jar包

    文章完全转载自 : https://blog.csdn.net/qq_31289187/article/details/81117478 问题一: 经常遇到公司私服或者中央仓库没有的jar包,然后通过 ...

  7. Idea打Jar包并生成exe文件(三:Idea打Jar包)

    转载自:https://blog.csdn.net/dominic_z/article/details/82791790 我们先看看实例项目 这个项目里包括 一个数据文件,位于'data/data' ...

  8. java 将应用程序打成可执行的JAR包,然后使用批处理方式运行

    1. jar 命令详解 jar 是随 JDK 安装的,在 JDK 安装目录下的 bin 目录中,Windows 下文件名为 jar.exe,Linux 下文件名为 jar.它的运行需要用到 JDK 安 ...

  9. java web文件上传所需要的commons-fileupload和 commons-io jar包

    文章目录 一.官网获取 二.百度网盘分享 三.分享与热爱 一.官网获取 学习java web文件上传时需要用到两个必备的jar包: commons-fileupload commons-io jar ...

最新文章

  1. POJ-1185 炮兵阵地 动态规划+状态压缩
  2. python编程入门到实践答案-Python编程:从入门到实践
  3. 《Objective-c》-(description方法)
  4. u盘魔术师装linux,使用U盘魔术师安装Win7系统教程
  5. cdrx8如何批量导出jpg_SU基础教程——如何批量导出效果图
  6. 加时间水印_如何在手机照片上添加时间和日期?打开这个设置即可添加,超方便...
  7. c ++向量库_将向量复制到C ++中的另一个向量
  8. 相机标定方法机理总结与公式推导(Camera calibration)
  9. 蓝桥杯 BASIC-26 基础练习 报时助手
  10. python 之selectors 实现文件上传下载
  11. Freeswitch拨号响应太慢的解决办法
  12. Matlab命令系列之目录操作
  13. CondaHTTPError: HTTP 000 CONNECTION FAILED for url ...... 解决过程
  14. 一键发圈,一键转发到微信朋友圈或者微信好友
  15. 为什么有的python内置函数怎么就一个pass?
  16. 【程序思考】人穷志短,千古名言
  17. 单片机推挽输出c语言,单片机IO口科普:推挽输出、开漏输出详解
  18. 《英语(二)》作文案例
  19. angular拖动插件——ng-drag、ng-drop
  20. 普渡大学利用深度学习自动检测核反应堆裂缝

热门文章

  1. 智能车竞赛技术报告 | 智能车视觉 - 首都师范大学 - 首师智能视觉
  2. 第十六届全国大学智能车竞赛全国总决赛竞速组别成绩与奖项
  3. 150kHz无线导航信号接收板调试-Ver2
  4. 2021年春季学期-信号与系统-第八次作业参考答案-第十二小题
  5. linux异常断电usb驱动丢失,如何修复Linux中损坏的USB驱动器 | MOS86
  6. vba 修改access表的链接地址_VBA中常用的这7种数据类型,你都get到了吗?
  7. 科技边框_智能手机窄边框喷射点胶机欧力克斯
  8. 不同品牌android手机ui,各大安卓手机品牌里,系统UI设计对比,谁赢了?
  9. java 不知道键值名_java-如果您知道曲线名称和原始私钥/点,如...
  10. androidwakelock_Android中的WakeLock