`
fehly
  • 浏览: 245402 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

关于java打包问题

    博客分类:
  • java
阅读更多

1、怎么把一个java文件打包到当前目录

   javac –d . *.java

2、怎么把一个java文件打包并编译到指定文件夹中?
   javac –d object_file *.java

3、怎么制作JAR?

   ①编译生成.class文件 如上1、2

   ②做一个配置文件,随意取个名字如conf.txt,在该文件内输入一行:

     Main-Class: packageName.Class_FileName(回车)

         注意:文件开头必须顶格写,不可有空格,Main-Class:后有一个空格,另外,该行必须以一个

回车结束。该配置文件给出了双击Jar文件时运行其中的哪个类。

   ③输入一下命令制作JAR文件:

        Jar cmf conf.txt jar_name.jar packageName/*.class

         这里的conf.txt和jar_name.jar两个文件分别对应的参数是m和f。conf.txt的作用是配置

manifest.mf文件。因为要创建可执行的jar文件包,光靠指定一个manifest.mf是不够的,因为MAINFEST

是jar文件是和不可执行的JAR文件都包含MANIFEST。关键在于可执行的JAR文件包的MANIFEST,其内容包

含Main-Class项

 

 

一:简单的打包:

先将要打包的文件整理好,拷贝到一个目录中。然后打开命令行窗口,进入到这个目录下面,执行以下命令即可:

jar cvf SanyDemo.war */.

这里指定文件名为SanyDemo.war,“*/.”表示要打包的文件为当前目录下的所有文件。

以下为Jar自带帮助信息:

用法: jar {ctxui}[vfm0Me] [jar-file] [manifest-file] [entry-point] [-C dir] files ...
选项包括:
    -c  创建新的归档文件
    -t  列出归档目录
    -x  解压缩已归档的指定(或所有)文件
    -u  更新现有的归档文件
    -v  在标准输出中生成详细输出
    -f  指定归档文件名
    -m  包含指定清单文件中的清单信息
    -e  为捆绑到可执行 jar 文件的独立应用程序
        指定应用程序入口点
    -0  仅存储;不使用任何 ZIP 压缩
    -M  不创建条目的清单文件
    -i  为指定的 jar 文件生成索引信息
    -C  更改为指定的目录并包含其中的文件
如果有任何目录文件,则对其进行递归处理。
清单文件名、归档文件名和入口点名的指定顺序
与 "m"、"f" 和 "e" 标志的指定顺序相同。

示例 1:将两个类文件归档到一个名为 classes.jar 的归档文件中:
       jar cvf classes.jar Foo.class Bar.class
示例 2:使用现有的清单文件 "mymanifest" 并
           将 foo/ 目录中的所有文件归档到 "classes.jar" 中:
       jar cvfm classes.jar mymanifest -C foo/ .


 

二:使用Eclipse 打包应注意的问题

 


如果项目有依赖的jar,那么要注意:
可把jar包打到War包里,但jar包不能打到Jar包里去。
“MANIFEST.MF”文件内容
Manifest-Version: 1.0
Main-Class:A
Class-Path: lib/commonsapi.jar

假设打包后名为A.jar

然后整理成如下目录结构
A.jar
lib
  -commonsapi.jar

将所有依赖包都放入lib文件夹中,双击A.jar,程序就可以运行了。

 

 

三:打包成WAR文件:

在CMD下,当我们敲下jar -help时,系统给我们提供了如下的jar命令以及jar打包:

用法: jar {ctxui}[vfm0Me] [jar-file] [manifest-file] [entry-
s ...
选项包括:
    -c 创建新的归档文件
    -t 列出归档目录
    -x 解压缩已归档的指定(或所有)文件
    -u 更新现有的归档文件
    -v 在标准输出中生成详细输出
    -f 指定归档文件名
    -m 包含指定清单文件中的清单信息
    -e 为捆绑到可执行 jar 文件的独立应用程序
        指定应用程序入口点
    -0 仅存储;不使用任何 ZIP 压缩
    -M 不创建条目的清单文件
    -i 为指定的 jar 文件生成索引信息
    -C 更改为指定的目录并包含其中的文件
如果有任何目录文件,则对其进行递归处理。
清单文件名、归档文件名和入口点名的指定顺序
与 "m"、"f" 和 "e" 标志的指定顺序相同。

示例 1:将两个类文件归档到一个名为 classes.jar 的归档文件中:
       jar cvf classes.jar Foo.class Bar.class
示例 2:使用现有的清单文件 "mymanifest" 并
           将 foo/ 目录中的所有文件归档到 "classes.jar" 中:
       jar cvfm classes.jar mymanifest -C foo/ .

现在我们用jar命令来进行war打包:

       运行cmd 进入命令提示行,定位到工程的路径,如你工程名是"classes" 放在d盘要路径下,

你就可以运行到d:\classes

然后运行Jar cvf classes.war */   .   (此处有一个点,包含了此文件夹下的所有文件)即可。

“D:\JCY2007>d:\java1.5\bin\jar cvf JCY2007.war *”把D:/JCY2007目录下所有的文件都打包到JCY2007.WAR中

 

将java源文件打包成可执行程序
1.把准备打包的.java文件集中到一个目录中例如c:\source

2.建立一个存放.class文件的目录例如c:\class

3.在C盘根目录下使用命令javac -d class source\*.java
编译所有.java源文件,生成的.class字节码文件放在class目录中

4.在class目录下 执行jar cvf abc.jar *.*
把所有的文件打包成abc.jar文件

5.抽取meta-inf/manifest.mf文件
执行jar xfm abc.jar meta-inf/manifest.mf
就抽取出文件manifest.mf
编辑这个文件 
在最后一行加入Main-Class: Font2DTest
其中Font2DTest为你自己的类中含有main函数的类的名字
如果有包名,应该带上包的名字 如test.Font2DTest

6.更新jar包中meta-inf/manifest.mf文件
执行 jar ufm abc.jar meta-inf/manifest.mf 
出现警告 可以忽略

7. 好了 现在abc.jar就可以直接运行了

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics