java问题,如何把指定目录的class文件打包成jar文件?

比如说我的class文件都分目录放在D:\workspace\test\class路径下,其中a.java是主程序入口。我该在命令行里输入什么命令才能把此路径下的class打包成jar文件,打包后的文件生成在哪,打包的时候我的manifest文件应该放在哪里。要求打包后的文件可以用jar -命令执行
高手来解答,拒绝从别的地方拷来的回答,不会的别从网页上粘给我,先给50分,满意可以加分
请回答者按照我举的例子回答,把命令写出来,谢谢,如果想要一个简单答案的话我自己搜索就可以了,也不用在这里问了

我先纠正一点,jar命令不是用来执行jar包的,是用来打包的
执行用java -jar

就楼主给的参数,写一个例子好了

1.建立MANIFEST.MF (在D:\workspace\test\class目录下)
以下内容为文件内容
==================
Manifest-Version: 1.0
Main-Class: a(主类的路径,此选项可选,如果希望在windows下双击就执行,必须写)
Created-By: Abc Company(随便写,这个是创建人名字)
==================

2.打包
按照lz给的条件
在D:\workspace\test\classes\目录下执行
jar cvfm classes.jar MANIFEST.MF *.*

以上命令将class下所有文件打包到classes.jar,生成在class目录下

3.执行
输入java -jar classes.jar即可执行

4.另一种方案
如果希望使用非 JAR 工具建立 JAR 文件, 建议使用 WinRAR. 首先还是需要建立一个清单文件(名字必须为MANIFEST.MF), 向此文件中写入同使用 JAR 工具时一样的内容, 接着需要建立一个META-INF子目录, 然后将 MANIFEST.MF 放入此目录, 接着就可以保持目录结构将所有这些内容使用 WinRAR 压缩为 ZIP 格式的文件, 文件名取为 xxx.jar 即可.

有问题欢迎发消息或用百度hi
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-09-19
告诉你一个最简单的方式,只要安装了WinRAR就可以完成,现在Windows系统上没有谁没装这个软件吧。

直接右击要打包的那个文件,选择“添加到压缩文件”,在WinRAR对话框中选择压缩格式为“Zip格式”,输入包名称,如"common-util.jar",确定。

好了,当前目录下包已经有了吧。

对于一般的包,这种方式已经够用了,如果要生成可执行包,那还是用Jar命令吧,具体用法很多人都知道,可以上网查,也可以直接利用Eclipse的导出功能生成,这个有向导更简单,不用我教了。
第2个回答  2008-09-19
开始->运行->cmd
输入d: 回车,输入:cd D:\workspace\test\class 回车
输入 jar cvf 随便一个名字.jar *.*回车
在class文件夹下会看到jar文件,右键选择打开方式,rar,打开后会看到一个META-INF文件夹,打开它,会看到一个文件MANIFEST.MF打开,看到类似这样的信息:Manifest-Version: 1.0
Created-By: 1.6.0_05 (Sun Microsystems Inc.)
然后把光标定位到Created-By: 1.6.0_05 (Sun Microsystems Inc.)后面,回车,加上Main-Class:空格a
就可以了
注意:第一次使用的时候,要随便新建一个后缀名为MF到文件,然后选择始终以记事本打开,不然你进到jar包里面的MF文件是只能看不能改的
第3个回答  2008-09-20
cmd -->D: -->cd D:\workspace\test\class -->jar cvfe xx.jar a *
命令说明:
xx.jar某某jar,目标jar文件名
a 主程序入口,不要 .java 后缀!
* 当前文件夹下所有文件

cvfe 参数:
c: 创建新的归档文件
v: 在标准输出中生成详细输出
f: 指定归档文件名
e: 为捆绑到可执行jar文件的独立应用程序指定应用程序入口点
第4个回答  2013-08-28
高手来了:
1 打包的文件生成位置  和   manifest文件放哪里都是根据 你执行jar命令时所在的位置决定的。

2 例如你的例子:
  首先写manifest文件
  Manifest-Version: 1.0
  Main-Class: a.class
  
  接着在doc下敲命令:
  cmd
  cd d:\workspace\test\class
  jar cvfm test.jar manifest . 
  (最后的一点,表示当前目录下面的所以文件都打包进去,当然不会保护自身jar)

相似回答