java源代码转jar包
引入
jar文件具有跨平台、数据压缩、多文件封装的优点,所以我们常将java源程序和其他的文件(比如资源文件、签名)打包到一起,变成jar包。这样对java程序的部署会更方便,也更安全。
用IDEA等IDE,可以直接将java文件转换为jar包。本文讲解如何用JDK命令来转换。
本文实验环境
- windows10
- JDK
最简单的jar包
jar包中可以含有很多文件(具体见[1]),最简单的jar包,就只含有class和META-INF/MANIFEST.MF。
- 写一个Hello.java
public class Hello
{public static void main(String[] args){System.out.println("hello ybdesire");}
}
- 将Hello.java转换为Hello.class
E:\one_class>javac Hello.java
- 将Hello.class打包jar
用jar命令,具体如下
E:\one_class>jar -cvf hello.jar Hello.class
added manifest
adding: Hello.class(in = 418) (out= 288)(deflated 31%)
其中参数c表示要创建一个新的jar包,v表示创建过程详细内容输出,f表示对jar包命名。
- 运行jar包
用java命令加-jar参数来运行jar包,如下
E:\one_class>java -jar hello.jar
no main manifest attribute, in hello.jar
被告知,jar包中缺少main manifest参数。
- 在jar包中添加参数
用7zip打开hello.jar文件,右键选中META-INF/MANIFEST.MF的编辑。
原始内容如下(注意最后一行为空行):
Manifest-Version: 1.0
Created-By: 1.8.0_201 (Oracle Corporation)
在最后一行插入Main-Class: Hello
,并留一行空行。改动后的内容为:
Manifest-Version: 1.0
Created-By: 1.8.0_201 (Oracle Corporation)
Main-Class: Hello
保存修改到jar包。
- 运行改动后的jar包
用java命令加-jar参数来运行jar包,如下,得到最终结果
E:\one_class>java -jar hello.jar
hello ybdesire
将在windows10上打包的hello.jar移动到ubuntu 16.04,仍然可以用如上命令来运行,因为jar是跨平台的。
补充:.class文件也是跨平台的。
参考
- [1] jar细节:https://www.ibm.com/developerworks/cn/java/j-jar/index.html
- [2] jar打包过程:https://www.cnblogs.com/flashsun/p/7246260.html
- [3] dex/jar转换:https://blog.csdn.net/MayData/article/details/53466126
java源代码转jar包相关推荐
- 如何根据jar包的名称找到包含对应源代码的jar包
我们经常在trouble shooting时,需要进入依赖的java库文件的源代码内进行调试,如下图所示,Eclipse提示需要指定包含了源代码的jar包:C:/temp/httpclient-4.5 ...
- java项目打jar包
http://www.cnblogs.com/tianguook/archive/2012/03/14/2396335.html java项目打jar包分为2种情况: 一.java项目没有导入第三方j ...
- java项目打jar包的两种情况
java项目打jar包的两种情况 本文介绍一下java项目打jar包时的两种情况各怎么操作 方法/步骤 1. 1 一.java项目没有导入第三方jar包 这时候打包就比较简单: 1. 首先在Ecl ...
- Java常用开源jar包
Java常用开源jar包 转:http://blog.csdn.net/kevingao/article/details/8125683 activation~与javaMail有关的jar包,使用j ...
- Eclipse中将java类打成jar包形式运行
记录一次帮助小伙伴将java类打成jar包运行 1.创建java project项目 file > new > project > java project 随便起一个项目名称,fi ...
- idea 执行 java jar_idea打包java可执行jar包的实现步骤
1,在项目上鼠标右键 --> Open Module Settings 2, Artifacts --> + --> JAR --> From modules with dep ...
- java项目添加jar包
java如何导入jar包 X1: 在java工程中怎么导入jar包 1. 项目名称上单击右键,点击properties. 2 .点击"Java Build Path",点击&quo ...
- 打包部署后无法读取jar包里的文件(实测可行,Java中读取jar包中的文件)
打包部署后无法读取jar包里的文件 Java中读取jar包中的文件 linux中无法读取jar包中的内容(windows可以的!),如何解决 一.背景 项目中免不了需要读取文件,如果文件用绝对路径读取 ...
- 将java文件打成jar包
新建一个配置文件mainfest.mf 设置内容Main-Class: Str2CamelCaseStr 把配置文件放到编译好的java文件 xxx.class同目录下面 到当前目录打开命令窗口 执行 ...
最新文章
- Science论文:诺奖经济学家的经典决策模型,被AI挑战
- Struts2 单个文件上传/多文件上传
- lisp修改界址线属性_如何获取界址线的界址线位置等扩展属性
- 带有Gradle的Spring Boot Web应用程序
- 【转】刨根究底字符编码之十——Unicode字符集的字符编码方式
- c#使用Path.Combine的一个坑
- oracle保存type类型,oracle type类型
- 深入解析:MySQL对分布式事务 XA Transactions 的支持
- 20个 CSS 快速提升技巧
- SyntaxError: Missing parentheses in call to 'print' 这个错误原因是Python版本问题
- 计算机切换用户屏幕闪,小编教您Win10切换用户后闪屏的具体办法
- 网管实战(9):网关地址的设置
- 【三】多线程 —— 设计模式
- JVM(2):垃圾收集器与gc
- 企业邮箱登录入口有哪些?
- 无光驱,硬盘安装XP完整原版
- 七届世界冠军迈克尔-舒马赫将正式退役
- OSChina 周一乱弹 —— T恤能穿出立体感来
- JS流程控制语句 反反复复(while循环) 和for循环有相同功能的还有while循环, while循环重复执行一段代码,直到某个条件不再满足。...
- vue.js动态设置VueComponent高度遇到的问题