命令行下编译java并生成jar包(1).doc_第1页
命令行下编译java并生成jar包(1).doc_第2页
命令行下编译java并生成jar包(1).doc_第3页
命令行下编译java并生成jar包(1).doc_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

命令行下编译java并生成jar包 jar文件听说过吗,没有?或者陌生!好,没关系,这就是我们的第一站:打包发布。为什么会有这个玩意呢,首先,这是jar的全称:JavaTM Archive (JAR) file,是的,就是java存档文件。这有点类似zip文件,想一想它是干什么的用的呢,压缩!?没错就是要压缩,将我们原先零散的东西放到一下,重新组织,所有这些目的只有一个:方便!好了,不用管他是怎么压缩的,我们的重点是哪些是我们要压缩的(输入),还有压缩成了什么(输出),进而将它发布(部署)。那我们的输入(要压缩的东西)主要是class文件,还有辅助的资源(这其中可能有图片,jsp文件,html文件等等)。Jar技术在 jdk1.1版本中就已存在,在1.2中又有了增强。接下来说说jar的好处吧,这是官方的描述:安全,快速下载,压缩,猎取包,版本化包,可携。说了这么多,我们现在开始实施。先打开命令提示符(win2000或在运行筐里执行cmd命令,win98为DOS提示符),输入jar help,然后回车(如果你盘上已经有了jdk1.1或以上版本),看到什么:用法:jar ctxuvfm0Mi jar-文件 manifest-文件 -C 目录 文件名 选项:-c 创建新的存档-t 列出存档内容的列表-x 展开存档中的命名的(或所有的文件-u 更新已存在的存档-v 生成详细输出到标准输出上-f 指定存档文件名-m 包含来自标明文件的标明信息-0 只存储方式;未用ZIP压缩格式-M 不产生所有项的清单(manifest文件-i 为指定的jar文件产生索引信息-C 改变到指定的目录,并且包含下列文件:如果一个文件名是一个目录,它将被递归处理。清单(manifest文件名和存档文件名都需要被指定,按m 和 f标志指定的相同顺序。示例1:将两个class文件存档到一个名为 classes.jar 的存档文件中:jar cvf classes.jar Foo.class Bar.class示例2:用一个存在的清单(manifest)文件 mymanifest 将 foo/ 目录下的所有文件存档到一个名为 classes.jar 的存档文件中:jar cvfm classes.jar mymanifest -C foo/ .来个小例子试试看:我们只有一个HelloWorld,如下:public class HelloWorldpublic static void main(String args)System.out.println(“Hi, Hello World!”);我将这个java文件存到C盘跟目录下,ok,接下来,在先前打开的命令提示符下(跳转到C盘提示符下),我们输入javac HelloWorld.java,然后继续输入:jar cvf hello.jar HelloWorld.class,回车后去你的C盘看看,多了什么,没错 hello.jar 。基本的步骤我们现在都知道了,你可以自己去尝试一下随着jar后面的参数的不同,结果有什么变化。紧接着我们看看如何运行我们的jar包。在进入正题之前,你要先打开我们刚刚做好的 jar包看看,多了什么呢,META-INF目录?再看看里面是什么,还有一个MANIFEST.MF文件是不是?用文本编辑器(我这里是 UltraEdit)打开它看看:Manifest-Version: 1.0Created-By: 1.4.2 (Sun Microsystems Inc.)就是这样。这里我们对它进行修改,加一句:Main-Class: HelloWorld (在第三行)。这个就是我们之前写的那个类,也就是我们的入口类。也即,Manifest-Version: 1.0Created-By: 1.4.2 (Sun Microsystems Inc.)Main-Class: HelloWorld接下来,我们在命令提示符里执行:jar umf MANIFEST.MF app.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:import java.io.*;import javax.servlet.*;import javax.servlet.http.*;public class 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(”Hello, World!”);out.println(”);out.println(”Hello, World!”);out.println(”);/end here!对它编译。下面是web.xml:helloHelloWorldhello/HelloWorld开始压缩,形成war档:在命令提示符下进到先前创制的hello目录下,执行 jar cvf hello.war * ,我们便得到hello.war。将它拷贝至webapps目录下,ok,来看最后一步,打开tomcat的目录conf中的server.xml,加入:大功告成!运行它,启动tomcat,后在浏览器中输入http:/localhost:8080/hello/HelloWorld,有了吗?最后,如果你想用ant来完成以上的打包活动,下面就告诉你:对于jar来说。在build.xml中,对于war,好了,就这么多,希望对你有点帮助。:)我上传了上面打过的两个包,hello.jar和hello.war。 点击下载 点击下载 第一rar文件对应的是hello.jar,下载后将其名改为hello.jar第二rar文件对应hello.war,下载后改为hello.war。这是由于上传不了jar格式和war格式的文件,你只好照我上面说的去做了 :)补充:#jar 基本操作:#1. 创建jar文件jar cf jar-file input-file(s)cwant to Create a JAR file.fwant the output to go to a file rather than to stdout.eg: 1)jar cf myjar.jar query_maintain_insert.htm2)jar cvf myjar.jar query_maintain_insert.htmvProduces verbose(详细的) output.3)jar cvf myjar.jar query_maintain_insert.htm mydirectory4)jar cv0f myjar.jar query_maintain_insert.htm mydirectory0dont want the JAR file to be compressed.5)jar cmf MANIFEST.MF myjar.jar yahh.txtmUsed to include manifest information from an existing manifest file.6)jar cMf MANIFEST.MF myjar.jar yahh.txtMthe default manifest file should not be produced.7)jar cvf myjar.jar *create all contents in current directory.2. 察看jar文件jar tf jar-filetwant to view the Table of contents of the JAR file.eg: 1)jar vft yahh.jarvProduces verbose(详细的) output.3. 提取jar文件jar xf jar-file archived-file(s)xwant to extract files from the JAR archive.eg: 1)jar xf yahh.jar yahh.txt(仅提取文件yahh.txt)2)jar xf yahh.jar alex/yahhalex.txt(仅提取目录alex下的文件yahhalex.txt)3)jar xf yahh.jar(提取该jar包中的所有文件或

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论