jar命令打包与java执行jar包

JAR命令详解

jar {ctxu}[vfm0M] [jar-文件] [manifest-文件] [-C 目录] 文件名 …

  其中 {ctxu} 是 jar 命令的子命令,每次 jar 命令只能包含 ctxu 中的一个,它们分别表示:

  • -c 创建新的 JAR 文件包
  • -t 列出 JAR 文件包的内容列表
  • -x 展开 JAR 文件包的指定文件或者所有文件
  • -u 更新已存在的 JAR 文件包 (添加文件到 JAR 文件包中)

  [vfm0M] 中的选项可以任选,也可以不选,它们是 jar 命令的选项参数

  • -v 生成详细报告并打印到标准输出
  • -f 指定 JAR 文件名,通常这个参数是必须的
  • -m 指定需要包含的 MANIFEST 清单文件
  • -0 只存储,不压缩,这样产生的 JAR 文件包会比不用该参数产生的体积大,但速度更快
  • -M 不产生所有项的清单(MANIFEST〕文件,此参数会忽略 -m 参数

创建jar包并显示打包过程

jar -cvf filename.jar files

创建可执行jar包并显示打包过程

jar -cvfm filename.jar MANIFEST.MF files

查看jar包中的文件

jar -tf filename.jar

解压jar包并显示打包过程

jar -xvf filename.jar

向jar包中添加文件

jar -uf filename.jar files

加-C参数,表示先切换到TEST目录下在执行jar -cvf命令

JAR -CVF FILENAME.JAR -C TEST/

JAVA执行JAR包


执行不带MANIFEST文件的jar包

java -classpath filename.jar MainClass

例如有一个类叫helloworld里边有main方法代码如下:

public class helloworld{
public static void main(String[]args){
System.out.println("hello world");
}
}

然后将他编译打成jar包,没有指定添加MANIFEST.MF文件或没有执定main方法所在的类,使用java -jar helloworld.jar会报no main manifest attribute, in helloworld.jar错误,这种情况就可以使用java -classpath helloworld.jar helloworld命令指定main class执行

执行jar包中包含jar包的jar包

java -classpath inner.jar -jar filename.jar

第一种把第三方的jar包解压后与项目一起打包有时候我们需要引用第三方的jar包,我们打包的时候就需要把第三方jar包一起打到jar包中,这时候有两种方法:

  • 第二种使用上边的命令去执行,例如有一个第三方的jar包叫inner.jar与项目一起打包成jar文件叫helloworld.jar使用java -jar命令去执行会报找不到class异常,就需要使用上边的命令java -classpath inner.jar -jar helloworld.jar
时间: 2024-10-10 06:40:14

jar命令打包与java执行jar包的相关文章

java 执行 jar 包中的 main 方法

通过 OneJar 或 Maven 打包后 jar 文件,用命令:java -jar ****.jar执行后总是运行指定的主方法,如果 jar 中有多个 main 方法,那么如何运行指定的 main 方法呢?用下面的命令试试看: java -classpath ****.jar ****.****.className [args] “****.****”表示“包名”:“className”表示“类名”:“[args]”表示传入的参数: 直接运行 MANIFEST.MF 中指定的 main 方法:

利用jar命令打包和解压

[导读]如何把 java 程序编译成 .exe 文件?使用制作可执行 JAR 文件包的方法就是最佳选择了,何况它还能保持Java 的跨平台特性. 常常在网上看到有人询问:如何把 java 程序编译成 .exe 文件.通常回答只有两种,一种是制作一个可执行的 JAR 文件包,然后就可以像.chm 文档一样双击运行了:而另一种是使用 JET 来进行 编译.但是 JET 是要用钱买的,而且据说 JET 也不是能把所有的 Java 程序都编译成执行文件,性能也要打些折扣.所以,使用制作可执行 JAR 文

IDEA中maven项目打包生成可执行jar

新建maven项目,编写Main方法类,略 其中build节点配置如下 <build> <plugins> <plugin> <groupId>org.scala-tools</groupId> <artifactId>maven-scala-plugin</artifactId> <version>2.15.2</version> <executions> <execution&

在CMD窗口中使用javac和java命令进行编译和执行带有包名的具有继承关系的类

一.背景 最近在使用记事本编写带有包名并且有继承关系的java代码并运行时发现出现了很多错误,经过努力一一被解决,今天我们来看一下会遇见哪些问题,并给出解决办法. 二.测试过程 1.父类代码 1 package com.hafiz.zhang; 2 3 public class Fu 4 { 5 private Integer i ; 6 7 public void sayHello(String name) { 8 System.out.println("Hello " + name

(转载)Eclipse将引用了第三方jar包的Java项目打包成可执行jar的两种方法

转载自:http://www.cnblogs.com/lanxuezaipiao/p/3291641.html 方案一:用Eclipse自带的Export功能 步骤1:准备主清单文件 "MANIFEST.MF", 由于是打包引用了第三方jar包的Java项目,故需要自定义配置文件MANIFEST.MF,在该项目下建立文件MANIFEST.MF,内容如下: Manifest-Version: 1.0 Class-Path: lib/commons-codec.jar lib/common

Maven 手动添加第三方依赖包及编译打包和java命令行编译JAVA文件并使用jar命令打包

一,实例:新建了一个Maven项目,在eclipse中通过 build path –> configure path-.将依赖包添加到工程中后,eclipse不报错了.但是用Maven命令 mvn clean compile 时出错如下: 原因是在eclipse中添加了 exteneral jar后,还需要在maven中再添加依赖的jar包 Maven手动添加第三方依赖包有两种方法: 参考:maven 添加第三方依赖              maven中把依赖的JAR包一起打包 第一种方法是使

Java执行jar总结 ( 血泪史 )

1.命令集 1)nohup 用途:不挂断地运行命令. 语法:nohup Command [ Arg … ] [ & ] 无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的 nohup.out 文件中. 如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中. 如果没有文件能创建或打开以用于追加,那么 Command 参数指定的命令不可调用. 退出状态:该命令返回下列出口值:  126 可以查找但不能调用 Command 参数指定

有关打包成可执行jar包后引用jar包中配置文件问题

一 问题由来 有时候我们做一些项目时,需要将一些配置信息写入配置文件中,以供调用.比如说这样: 如果我们需要在Demo.java中读取config.txt这个文件中的配置信息,在这种工程目录下是可以使用File来读取的,但是打包成jar后,使用File将不能读取到config.txt了,除非将这个配置信息放在jar包的外面. 假如说我们用File来读取文件: BufferedReader reader = new BufferedReader(new FileReader(new File("r

spring maven项目打包为可执行jar包

用assembly打包一直报错: shangyanshuodeMacBook-Pro:target shangyanshuo$ java -jar jobscrawler-1.0-SNAPSHOT-jar-with-dependencies.jar 17-04-30 15:52:43,337 INFO org.springframework.context.support.ClassPathXmlApplicationContext(AbstractApplicationContext.java