JAR包详解

1、jar包

JAR包是Java中所特有一种压缩文档,其实大家就可以把它理解为.zip包。当然也是有区别的,JAR包中有一个META-INF\MANIFEST.MF文件,当你找成JAR包时,它会自动生成。

JAR包是由JDK安装目录\bin\jar.exe命令生成的,当我们安装好JDK,设置好path路径,就可以正常使用jar.exe命令,它会用lib\tool.jar工具包中的类。

2、jar命令

jar命令格式:jar {c t x u f }[ v m e 0 M i ][-C 目录]文件名…

其中{ctxu}这四个参数必须选选其一。[v f m e 0 M i ]是可选参数,文件名也是必须的。

-c 创建一个jar包
-t 显示jar中的内容列表
-x 解压jar包
-u 添加文件到jar包中
-f 指定jar包的文件名

-v 生成详细的报造,并输出至标准设备
-m 指定manifest.mf文件.(manifest.mf文件中可以对jar包及其中的内容作一些一设置)
-0 产生jar包时不对其中的内容进行压缩处理
-M 不产生所有文件的清单文件(Manifest.mf)。这个参数与忽略掉-m参数的设置
-i 为指定的jar文件创建索引文件
-C 表示转到相应的目录下执行jar命令,相当于cd到那个目录,然后不带-C执行jar命令

3、jar使用案例

  1. 创建jar包
    jar cf hello.jar hello 利用test目录生成hello.jar包,如hello.jar存在,则覆盖

  2. 创建并显示打包过程
    jar cvf hello.jar hello 利用hello目录创建hello.jar包,并显示创建过程
    例:E:>jar cvf hello.jar hello
    标明清单(manifest)
    增加:hello/(读入= 0) (写出= 0)(存储了 0%)
    增加:hello/TestServlet2.class(读入= 1497) (写出= 818)(压缩了 45%)
    增加:hello/HelloServlet.class(读入= 1344) (写出= 736)(压缩了 45%)
    增加:hello/TestServlet1.class(读入= 2037) (写出= 1118)(压缩了 45%)

  3. 显示jar包
    jar tvf hello.jar 查看hello.jar包的内容
    指定的jar包必须真实存在,否则会发生FileNoutFoundException。

  4. 解压jar包
    jar xvf hello.jar 解压hello.jar至当前目录

  5. jar中添加文件
    jar uf hello.jar HelloWorld.java 将HelloWorld.java添加到hello.jar包中

  6. 创建不压缩内容jar包
    jar cvf0 hello.jar *.class 利用当前目录中所有的.class文件生成一个不压缩jar包

  7. 创建带manifest.mf文件的jar包
    jar cvfm hello.jar manifest.mf hello
    创建的jar包多了一个META-INF目录,META-INF止录下多了一个manifest.mf文件,至于manifest.mf的作用,后面会提到.

  8. 忽略manifest.mf文件
    jar cvfM hello.jar hello 生成的jar包中不包括META-INF目录及manifest.mf文件

  9. 加-C应用:
    jar cvfm hello.jar mymanifest.mf -C hello/
    表示在切换到hello目录下然后再执行jar命令

  10. -i为jar文件生成索引列表
    当一个jar包中的内容很好的时候,你可以给它生成一个索引文件,这样看起来很省事。
    jar i hello.jar 执行完这条命令后,它会在hello.jar包的META-INF文件夹下生成一个名为INDEX.LIST的索引文件,它会生成一个列表,最上边为jar包名。

  11. 导出解压列表
    jar tvf hello.jar >hello.txt 如果你想查看解压一个jar的详细过程,而这个jar包又很大,屏幕信息会一闪而过,这时你可以把列表输出到一个文件中,慢慢欣赏!

  12. jar -cvf hello.jar hello/*
    例如原目录结构如下:
    hello
    |—com
    |—org

    你本想只把com目录和org目录打包,而这时jar命令会连同hello目洋也一块打包进。这点大家要注意。jar命令生成的压缩文件会包含它后边出的目录。我们应该进入到hello目录再执行jar命令。

注意:manifest.mf这个文件名,用户可以任指定,但jar命令只认识Manifest.mf,它会对用户指定的文件名进行相应在的转换,这不需用户担心。

3、Manifest.mf文件编写规则:

manifest.mf的编写一定要注意一些细节:

  1. 不能有空行和空格的地方
    第一行不可以是空行( 第一行的行前不可以有空行),行与行之间不能有空行,第行的行尾不可以有空格
  2. 一定要有空行的地方
    最后一行得是空行(在输完你的内容后加一个回车就OK)
  3. 一定有空格的地方
    key: value 在分号后面一定要写写一个空格

4、创建可执行的jar包

5、

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
该资源包含以下jar包: commons-codec-1.6.jar commons-logging-1.1.1.jar fluent-hc-4.2.5.jar httpclient-4.2.5.jar httpclient-cache-4.2.5.jar httpcore-4.2.4.jar httpmime-4.2.5.jar import org.apache.http.Header; import org.apache.http.HttpException; import org.apache.http.HttpRequest; import org.apache.http.HttpRequestInterceptor; import org.apache.http.HttpResponse; import org.apache.http.HttpStatus; import org.apache.http.NameValuePair; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.conn.scheme.Scheme; import org.apache.http.conn.ssl.SSLSocketFactory; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.message.BasicNameValuePair; import org.apache.http.params.CoreConnectionPNames; import org.apache.http.protocol.HttpContext; antlr-2.7.7.jar aopalliance.jar asm-3.3.jar asm-commons-3.3.jar asm-tree-3.3.jar aspectjrt.jar aspectjweaver.jar com.springsource.org.aopalliance-1.0.0.jar com.springsource.org.apache.commons.logging-1.1.1.jar com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar commons-fileupload-1.3.1.jar commons-io-2.2.jar commons-lang-2.5.jar commons-lang3-3.2.jar commons-logging-1.1.3.jar dom4j-1.6.1.jar druid-1.0.15.jar fastjson-1.1.37.jar freemarker-2.3.22.jar hibernate-commons-annotations-4.0.1.Final.jar hibernate-core-4.2.0.Final.jar hibernate-jpa-2.0-api-1.0.1.Final.jar jackson-annotations-2.5.0.jar jackson-core-2.5.0.jar jackson-databind-2.5.0.jar javassist-3.11.0.GA.jar javassist-3.15.0-GA.jar jboss-logging-3.1.0.GA.jar jboss-transaction-api_1.1_spec-1.0.0.Final.jar jedis-2.1.0.jar json.jar jsp-api-2.1.jar jstl.jar log4j-1.2.16.jar log4j-api-2.2.jar log4j-core-2.2.jar mybatis-3.3.0.jar mybatis-spring-1.2.3.jar mysql-connector-java-5.1.40-bin.jar og
### 回答1: nohup java -jar命令是在Linux系统中运行Java程序的命令。其中,nohup表示不挂断地运行命令,即使终端关闭也不会停止程序的运行;java表示运行Java程序;-jar表示运行一个打包成jar文件的Java程序。 具体来说,nohup java -jar命令可以在后台运行一个Java程序,而不会受到终端关闭等操作的影响。这对于需要长时间运行的程序非常有用,比如服务器端的应用程序。 需要注意的是,nohup java -jar命令需要在Linux系统中使用,而且需要安装Java环境。同时,需要将Java程序打包成jar文件才能使用该命令运行。 ### 回答2: nohup java -jar命令是一个常用的命令,用于在后台运行Java应用程序。它的作用是让Java应用程序在用户退出登录后继续运行,并且不受挂起信号的影响。 nohup命令是词组“no hang up”的缩写,表示不挂断。nohup命令后紧跟着的是要在后台运行的命令,本例中是java -jar命令。这个命令指定使用Java虚拟机(JVM)来运行一个以jar包形式打包的Java应用程序。 使用nohup java -jar命令有很多好处。首先,它可以让Java应用程序在后台持续运行,即使您退出了登录。其次,它可以防止Java应用程序被终止,即使系统发送了中断信号或挂起信号。此外,nohup命令还会将输出信息保存到一个文件中。默认情况下,该文件名为nohup.out,但是您可以使用重定向运算符(>)将它重定向到其他文件。 举个例子,如果您想在Linux系统上运行一个名为myapp.jarJava应用程序,您可以使用以下命令: nohup java -jar myapp.jar & 此命令将启动myapp.jar并将其放在后台运行,同时也将输出信息保存到nohup.out文件中。要停止该应用程序,请使用kill命令。 总之,nohup java -jar命令使得Java应用程序可以在后台持续运行,并且不会被系统中断。它是一个非常有用的命令,可以为Java开发者提供方便和保障。 ### 回答3: nohup java -jar命令是Linux系统中常用的命令,它可以让我们在后台运行Java应用程序。下面对该命令进行详细解析: 1. nohup命令 nohup是No Hang Up的缩写,意思是不挂断。它的作用是让我们在后台运行命令时,即使断开终端连接,命令还是能够继续运行,直到执行完毕。 2. java -jar命令 java -jar命令是运行Java应用程序的命令,其中-jar参数表示运行一个打包的Java应用程序。使用该命令可以忽略classpath环境变量和-classpath命令行选项,方便我们打包和运行Java应用程序。 3. 组合使用 nohup java -jar命令的组合使用,可以让我们在后台运行Java应用程序,且即使断开终端连接,应用程序也能够继续运行。使用该命令时,需要指定Java应用程序的jar包路径,如下所示: nohup java -jar /path/to/app.jar & 其中,&表示将命令放入后台运行。 除了上述常见用法外,nohup java -jar命令还可以搭配其他命令使用,如结合grep命令对Java应用程序输出的日志进行过滤,或者使用tee命令将日志保存到文件中。 总之,nohup java -jar命令是在Linux系统中常用的命令,它能够在后台运行Java应用程序,并且即使断开终端连接,应用程序也能够继续运行,非常方便实用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值