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就可以直接运行了