Linux系统下Java应用程序打包成.jar文件
来源:互联网 发布:淘宝怎样重新申请退款 编辑:程序博客网 时间:2024/05/21 15:31
今天想试试Linux系统下把java应用程序打包成.jar文件,在网上找了很多相关的博客,发现他们理论讲得很到位,但是按照他们的方式操作发现很多错误,最后综合几篇文章终于尝试成功。多学习别人的失败,更容易带你走向成功,现在把自己操作过程罗列出来(步骤中有部分错误,正是在错误中一步步摸索才获得了最终的成功)。至于理论部分我会在文章末尾贴出来(参考别人文章写的)。如果我理论部分整理的不是很好的话,你可以多参考网上的文章。
实验前准备:FileLength.java 文件一份
实验环境:CentOS6.0 JDK1.6.0_03
实验目的:将FileLength.java文件打包成test.jar文件
实验步骤:
<1>javac FileLength.java 编译程序产生FileLength.class文件;
<2>jar -cvf test.jar FileLength.class 打包成test.jar文件,以下是运行结果:
added manifest
adding: FileLength.class(in = 506) (out= 373)(deflated 26%)
通过结果可以看出,系统自动帮你添加了manifest文件(这个文件的作用后面讲)。另外,jar命令的使用,自己参考参考网上jar命令的讲解。
<3>java -jar test.jar 运行test.jar文件 ;运行后出现以下错误:Failed to load Main-Class manifest attribute from test.jar,错误提示:找不到main-class
<4>解决办法:jar -xf test.jar 解压文件,你会发现你当前目录中多了个MENT-INF文件夹,进入该文件夹用vim打开MANIFEST.MF文件,文件内容如下:
Manifest-Version: 1.0
Created-By: 1.6.0_20 (Sun Microsystems Inc.)
现在你要做的就是,在文件中添加内容Main-class: FileLength (FileLength为main方法所在的文件)。这么做的目的是系统可以找到main-class。该文件的最终内容为:
Manifest-Version: 1.0
Created-By: 1.6.0_20 (Sun Microsystems Inc.)
Main-class: FileLength
<5>jar -cvfm test.jar MANIFEST.MF FileLength.class 重新打包
<6>java -jar test.jar 就可以运行成功了,试试看吧
理论基础:
JAR 文件就是 Java Archive File,顾名思意,它的应用是与 Java 息息相关的,是 Java 的一种文档格式。JAR 文件非常类似 ZIP 文件——准确的说,它就是 ZIP 文件,所以叫它文件包。JAR 文件与 ZIP 文件唯一的区别就是在 JAR 文件的内中,包含了一个 META-INF/MANIFEST.MF 文件,这个文件是在生成 JAR 文件的时候自动创建的。
举个例子,如果我们具有如下目录结构的一些文件:
|-- test
|-- Test.class
把它压缩成 ZIP 文件 test.zip,则这个 ZIP 文件的内部目录结构为:
test.zip
|-- test
|-- Test.class
如果我们使用 JDK 的 jar 命令把它打成 JAR 文件包 test.jar,则这个 JAR 文件的内部目录结构为:
test.jar
|-- META-INF
| -- MANIFEST.MF
|-- test
|--Test.class
MANIFEST.MF:打包清单。它是打包的关键性文件,主要是设置执行入口类和支持库的路径,在运行Java应用程序时要根据此文件中的内容来查找入口类和支持库。
- Linux系统下Java应用程序打包成.jar文件
- Linux系统下Java应用程序打包成.jar文件
- linux下java多文件编译和jar打包
- java项目打包成jar编写启动文件在windows和Linux下运行
- java打包成jar文件
- JAVA文件打包成.jar
- 在Eclipse下Java程序打包成jar文件
- MyEclipse10 下将Java项目打包成.jar文件过程
- 云平台下Java程序打包成.jar文件
- 将java 应用程序打包成linux下的服务
- 将java 应用程序打包成linux下的服务
- 【详细】如何将Java源码打包成可执行的jar文件(windows&linux系统都是可以执行的)
- JAVA文件如何打包成jar文件
- java .class文件打包成.jar文件
- 将java文件打包成.jar文件
- java 打包jar文件
- Java打包JAR文件
- jar 打包java文件
- [INSTALL_FAILED_MISSING_SHARED_…
- [INSTALL_FAILED_MISSING_SHARED_…
- 关于android编译模块命令mmm
- 关于android编译模块命令mmm
- UVa494 - Kindergarten Counting Game-难度1
- Linux系统下Java应用程序打包成.jar文件
- Android的编译系统(重要)
- Android的编译系统(重要)
- android获取源代码、编译、命令
- android获取源代码、编译、命令
- 看程序员是怎么喝酒的(搞笑)
- android build
- android build
- Android project 的常用编译方法