Java程序打包成jar文件
Java程序打包jar文件(jar命令形式)
先打开命令提示符,输入jar,然后回车(如果你已经配置好了java环境),可以看到:
用法:jar{ctxu}[vfm0Mi] [jar-文件] [manifest-文件][-C 目录] 文件名...
选项:
-c创建新的存档
-t列出存档内容的列表
-x展开存档中的命名的(或所有的)文件
-u更新已存在的存档
-v生成详细输出到标准输出上
-f指定存档文件名
-m包含来自标明文件的标明信息
-0只存储方式;未用zip压缩格式
-M不产生所有项的清单(manifest)文件
-i为指定的jar文件产生索引信息
-C改变到指定的目录,并且包含下列文件:如果一个文件名是一个目录,它将被递归处理。清单(manifest)文件名和存档文件名都需要被指定,按'm'和 'f'标志指定的相同顺序。
示例1:将两个class文件存档到一个名为'classes.jar' 的存档文件中:
jarcvf classes.jar Foo.class Bar.class
示例2:用一个存在的清单(manifest)文件'mymanifest' 将 foo/ 目录下的所有文件存档到一个名为'classes.jar' 的存档文件中:
jarcvfm classes.jar mymanifest -C foo/.
来个小例子试试看:我们只有一个HelloWorld,如下:
publicclass HelloWorld {
public static void main(String[ ] args) {
System.out.println(“Hi, Hello World!”);
}
}
将这个java文件存到C盘根目录下,ok,接下来,在先前打开的命令提示符下(跳转到C盘提示符下),我们输入javacHelloWorld.java,然后继续输入:jar cvf hello.jar HelloWorld.class,回车后去你的C盘看看,多了什么,没错hello.jar。
紧接着我们看看如何运行我们的jar包。
在进入正题之前,你要先打开我们刚刚做好的jar包看看,多了什么呢,META-INF目录?再看看里面是什么,还有一个MANIFEST.MF文件是不是?用文本编辑器(我这里是UltraEdit)打开它看看:
Manifest-Version:1.0
Created-By:1.4.2 (Sun Microsystems Inc.)
就是这样。这里我们对它进行修改,加一句:Main-Class:HelloWorld (在第三行)。这个就是我们之前写的那个类,也就是我们的入口类。也即:
Manifest-Version:1.0
Created-By:1.4.2 (Sun Microsystems Inc.)
Main-Class:HelloWorld
接下来,我们在命令提示符里执行:
jar umf MANIFEST.MF hello.jar
这样我们使用了我们自己的MANIFEST.MF文件对原来默认的进行了更新。你不妨可以再进去看看是不是添上了Main-Class:HelloWorld这一句。
Ok,这个最后的一步了,来验证我们做的一切,在命令提示符中输入:
java-jar hello.jar(执行)
出现了什么,Hi, Hello World!
我们再来看看jar文件在tomcat中发布,注意:在tomcat中我们就不能再用jar这种格式,而改war格式,它是专门用于web应用的,其实整个过程下来基本上和jar是类似的:
先准备我们要打包的资源。
找到存放tomcat的webapps目录,进到其中,新建一个文件夹,这里命名为hello,再进去新建WEB-INF文件夹,再进去新建classes文件夹,此时我们也将我们唯一的servlet,HelloWorld.java放到这里,在与classes目录同级下建立一文件web.xml。Ok,目前我们初步建立了一个简单的web应用。
这是HelloWorld.java:
importjava.io.*;
importjavax.servlet.*;
importjavax.servlet.http.*;
publicclass HelloWorld extends HttpServlet {
public void doGet(HttpServletRequest req,HttpServletResponse res)
throws ServletException, IOException {
res.setContentType("text/html");
PrintWriter out = res.getWriter();
out.println("");
out.println("");
out.println("");
out.println("Hello, World!");
out.println("");
}
}//end here!
对它编译。下面是web.xml:
<?xmlversion="1.0" encoding="UTF-8"?>
<!DOCTYPEweb-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/HelloWorld</url-pattern>
</servlet-mapping>
</web-app>
在命令提示符下进到先前创制的hello目录下,执行jar cvf hello.war * ,我们便得到hello.war。将它拷贝至webapps目录下,ok,来看最后一步,打开tomcat的目录conf中的server.xml,加入:
<Contextpath="/hello" docBase="hello.war" debug="0"reloadable="true"/>
大功告成!运行它,启动tomcat,后在浏览器中输入http://localhost:8080/hello/HelloWorld。
Java程序打包jar文件(Eclipse自带Export)
使用eclipse开发工具,可以将java程序直接导出成jar程序文件,eclipse的export功能。
1、选中需要打包的程序,鼠标右键:
2、选择导出类型为jar文件:
3、选择需要打包的文件,并不需要将所有的文件都打包,这样可以减小jar文件的大小。并且可以选择导出jar包的一些信息,其解释如下:
*Export generated class files and resources 表示只导出生成的.class文件和其他资源文件;
*Export all output folders for checked projects 表示导出选中项目的所有文件夹;
*Export java source file and resouces 表示导出的jar包中将包含你的源代码*.java,如果你不想泄漏源代码,那么就不要选这项了;
*Export refactorings for checked projects 把一些重构的信息文件也包含进去。
这里需要对MANIFEST.MF进行说明,这是打包的主清单文件,每个项目打包之后都会生成一个META-INF目录,里面还有一个MANIFEST.MF文件。在eclipse中如果打包的程序没有引用第三方jar文件,则可以使用默认配置生成(当然你还是可以自己写,并说明程序执行的入口文件,若有的话)若项目使用了第三方jar包,则需要自己编写MANIFEST.MF文件:
Manifest-Version: 1.0
Class-Path: lib/mysql-connector-java-5.1.6-bin.jar
Main-Class: com.zxt.sqlhelper.SqlHelperTest
第一行是MAINIFEST的版本,第二行Class-Path就指定了外来jar包的位置,第三行指定我们要执行的MAINjava文件。
还需注意一下一些问题:
(1)、Class-Path: 和Main-Class: 后边都有一个空格,必须加上,否则会打包失败,错误提示为:Invalid header field;
(2)、假设我们的项目打包后为Hello.jar,那么按照上面的定义,应该在 Hello.jar的同层目录下建立一个lib文件夹(即lib文件和打包的jar文件在同一个目录下),并将相关的jar包放在里面。否则将会出现“Exceptionin thread "main" java.lang.NoClassDefFoundError”的错误;
3、Main-Class后面是类的全地址,比如你的主文件是Hello.java,文件里打包为packagecom.main; 那么这里就写com.main.Hello,不要加.java后缀,主文件地址写错将会出现“找不到或无法加载主类”的错误;
4、写完Main-Class后一定要回车(即最后一行是空白行),让光标到下一行,这样你生成的jar包才能找到你的主class去运行,否则将会出现“jar中没有主清单属性”的错误。
4、选择配置文件:
这里解释一下配置项:
*Generate the manifest file:是系统帮我们自动生成MANIFEST.MF文件,如果你的项目没有引用其他class-path,那可以选择这一项。
*Use existing mainfest from workspace:这是可以选择我们自定义的.MF文件,格式如上所写,引用了第三方包时选用。
*Seal content:要封装整个jar或者指定的包packet。
*Main class:这里可以选择你的程序入口,将来打包出来的jar就是你这个入口类的执行结果。
5、最后Finish,即生成了我们要的jar文件。
Java程序打包jar文件(Eclipse安装插件FatJar)
Eclipse自带export对于含有较多第三方jar文件或含有第三方图片资源等就显得不合适,太繁琐。这时可以使用一个打包的插件—FatJar。
FatJar Eclipse Plug-In是一个可以将Eclipse Java Project的所有资源打包进一个可执行jar文件的小工具,可以方便的完成各种打包任务,我们经常会来打jar包,但是eclipse自带的打包jar似乎不太够用,FatJar是eclipse的一个插件,特别是Fat Jar可以打成可执行Jar包,并且在图片等其他资源、引用外包方面使用起来更方便。
安装方法:
1、Eclipse在线更新方法:Help> Install New Software > Add,
name:FatJar
location:http://kurucz-grafika.de/fatjar
2、Eclipse插件手动安装方法:首先先下载fatjar的安装包,将解压出的plugins中的文件复制到eclipse安装目录中的plugins目录下,然后重启eclipse即可。
使用方法:
步骤一:右击工程项目选择BuileFat Jar
步骤二:配置jar文件存放目录,主Main文件等,如下图:
步骤三:选择所要用到的第三方jar包。
Java程序打包成jar文件相关推荐
- 把Java程序打包成jar文件包并执行
把Java程序打包成jar文件包并执行 1.首先要确认自己写的程序有没有报错. 2.第一次我写的是Web Project到现在,我一直没有执行成功,所以最好创建的是java Project 打包步骤: ...
- java 程序包jar_把Java程序打包成jar文件包并执行
把Java程序打包成jar文件包并执行 1.首先要确认自己写的程序有没有报错. 2.第一次我写的是Web Project到现在,我一直没有执行成功,所以最好创建的是java Project 打包步骤: ...
- java打包成jar_把Java程序打包成jar文件包并执行的方法
本文介绍了把Java程序打包成jar文件包并执行的方法,分享给大家,具体如下: 1.首先要确认自己写的程序有没有报错. 2.第一次我写的是Web Project到现在,我一直没有执行成功,所以最好创建 ...
- java 程序打包成jar_把Java程序打包成jar文件包并执行的方法
本文介绍了把Java程序打包成jar文件包并执行的方法,分享给大家,具体如下: 1.首先要确认自己写的程序有没有报错. 2.第一次我写的是Web Project到现在,我一直没有执行成功,所以最好创建 ...
- java代码执行 打包jar_Java程序打包成jar文件包并执行的方法
这篇文章主要介绍了把Java程序打包成jar文件包并执行的方法,非常具有实用价值,需要的朋友可以参考下 本文介绍了把Java程序打包成jar文件包并执行的方法,分享给大家,具体如下: 1.首先要确认自 ...
- 如何把一个java程序打包成exe文件,运行在没有java虚
如何把一个java程序打包成exe文件,运行在没有java虚 核心提示:首先,将编译好的程序打包成jar文件,然后做出exe,这样代码就不可见了:但是exe文件在没有安装jre的电脑上不能运行,如果要 ...
- linux java jar打包_【Java】Java程序打包成jar包在Linux上运行
当需要把在Windows上开发的Java程序用在Linux上运行时,就需要吧该Java程序打包成jar包上传到Linux上去运行. 1.Java程序用MyEclipse打包成可运行的jar包 (1)在 ...
- MyEclipse将Java项目打包成jar文件的三种方法
2019独角兽企业重金招聘Python工程师标准>>> 方案一:用Eclipse自带的Export功能 步骤1:准备主清单文件 "MANIFEST.MF", 由于 ...
- myeclipse打包java文件_MyEclipse将Java项目打包成jar文件的三种方法
方案一:用Eclipse自带的Export功能 步骤1:准备主清单文件 "MANIFEST.MF", 由于是打包引用了第三方jar包的Java项目,故需要自定义配置文件MANIFE ...
- 如何将java程序打包成exe文件?
本文主要介绍如何使用exe4j对java程序进行exe打包. exe4j是一个帮助你集成Java应用程序到Windows操作环境的java可执行文件生成工具,无论这些应用是用于服务器,还是图形用户界面 ...
最新文章
- 字体大小的设置_老年人用智能手机,怎样更改字体大小?3种方法,手把手教您学会...
- LLVM3.8停止了旧Windows版本,取消Autoconf,改进Clang
- MySql 统计最近 6 个月内的数据,没有数据默认为显示为 0
- 主键与聚集索引的区别
- websocket html5 api,HTML5 新特性之 Websocket
- Ghost Blog
- 把复杂变简单,能产生颠覆的力量
- 【VC++类型转换】CString和System::String类型的转换
- 提示编码有问题时,VS保存选项
- Java仓储物流项目_基于jsp的物流仓库管理系统-JavaEE实现物流仓库管理系统 - java项目源码...
- Jackme空气净化器 去除雾霾呵护家人健康神器
- 目录-OpenGL编程指南
- Oracle卸载方法
- ovm安装过程及中断处理
- HTML5期末大作业:动物主题网站设计——酷酷动物主题响应式网页(5页) 大学生动物主题网页作品 动物网页设计作业模板 学生网页制作源代码下载
- 巧用二重积分的积分中值定理
- IDEA做数据库操作时的一个莫名其妙的错误
- 苏如是:香港中鼎资本与您分享“数实共生世界”和“后人类社会”
- Matlab中矩阵的右上角有一撇表示什么意思
- 江苏大学计算机学院复试题,本部基础A定稿-含答案(江苏大学计算机).doc
热门文章
- python 实现 Cmn 的排序 阶乘
- 【学习笔记】英文科技论文常见英语句式积累
- java 8中Comparator.comparing和reversed
- 查询给定区域内曲面平均高程
- 【JVM】Java IDEA 配置项目的JVM运行内存大小
- 如果你对未来还有点迷茫不妨来看一下,必看的软件测试指引!!!
- matplotlib之pyplot模块——向子图添加箭头(arrow())
- 一个基于igv.js实现的python脚本,实现简单的网页版IGV
- QT<八> 绘图事件、绘图设备
- 计算机文件一点右键就内存突增,电脑内存占用忽然升高怎么解决