jar cvf filename.jar a.class b.class
打包带package 的文件: jar cvf filename.jar foldername || jar cvf filename.jar foldername\*
打包可以执行的jar 包:
手动配置一个manifest.mf 文件
Main-Class: com.qingyuan.httpclient.RunnableJar [主程序]
Class-Path: lib\classes12.jar [配置依赖的jar包]
jar cvfm filename.jar manifest.mf *.class lib\classes12.jar
执行jar 包: java -jar filename.jar
MANIFEST.MF文件可以把jar包里的main函数所在的类列出来.如果执行该JAR包,会首先去找那个main(),
如果没有就不能执行只当把JAR包当成如RAR,ZIP一样的压缩文件.
示例1:将两个class文件存档到一个名为 'classes.jar' 的存档文件中
jar cvf classes.jar Foo.class Bar.class
用一个存在的清单(manifest)文件 'mymanifest' 将 foo/ 目录下的所有文件存档到一个名为 'classes.jar' 的存档文件中:
jar cvfm classes.jar mymanifest -C foo/ .
package com.qingyuan.httpclient;
public class RunnableJar
{
public static void main(String[] args)
{
System.out.println("打一个可执行的jar包");
}
}
1)C:\>javac httpclient\RunnableJar.java
2)C:\>cd httpclient
C:\httpclient>jar cvf runnable.jar RunnableJar.class
标明清单(manifest)
增加:RunnableJar.class(读入= 442) (写出= 334)(压缩了 24%)
-- 手动加上Main-Class配置
Manifest-Version: 1.0
Created-By: 1.6.0-beta2 (Sun Microsystems Inc.)
Main-Class: com/qingyuan/httpclient/RunnableJar
C:\httpclient>java -jar runnable.jar
Exception in thread "main" java.lang.NoClassDefFoundError: com/qingyuan/httpclient/RunnableJar
-- 按照包名建好目录: com/qingyuan/httpclient/RunnableJar.class
C:\httpclient>java -jar runnable.jar
打一个可执行的jar包
C:\httpclient>
其实这样打包也没多大意义, 用IDE工具就可以了, 打war包,jar包就很方便,war包在webapp目录下是自动解压的;
war封装好的web工程,放到tomcat下的webapp时。当tomcat启动时会自动解压war文件,生成和war文件名的目录。
访问时只访问目录,war文件只在Tomcat启动时读取,相当于web项目的安装包。部署完成后可以删除
jar打包命令
最新推荐文章于 2025-07-06 19:03:32 发布