eclipse 中的 jar file 和 runnable jar file的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了eclipse 中的 jar file 和 runnable jar file的区别相关的知识,希望对你有一定的参考价值。

eclipse 中的 jar file 和 runnable jar file的区别

从eclipse中export 的jar file,仅仅是把.class打包了。所以执行这种jar file需要用 java -cp .;ch04.jar com.thnkjava.ch04, 如果你还应用到另外的lib库,你必须在cp里说明,也就是 java -cp .;ch04.jar;lib01.jar;lib02.jar com.thnkjava.ch04 来执行。事实上可以发现ch04.jar也在cp里面,说明ch04.jar就是lib库,最后的参数指明了要被执行的类名。

如果从eclipse里export出的是 runnable jar file,那么个执行这个jar包的时候是不需要指明哪个类的,直接这样执行 java -jar ch04.jar。原因就是jar包中的MANIFEST.MF内容不同。 runnable jar包中指明哪个类先执行,所以你可以用 java -jar ch04.jar来执行你想要执行的代码,而不必指明具体哪个类。这个你可以打开 jar包查看MANIFEST.MF的区别,一目了然。

生成runnable jar file时,有两个选项,Extract required libraries into generated JAR 和 package equired libraries into generated JAR。 前者是把你用到的.class 文件提取出来,后者则是把你所需要的所有jar包都打进一个包里。两者的MANIFEST.MF文件内容也有所不同,这应该是eclipse造成的,IDE 做了自己的事情,具体就不研究了。
参考技术A eclipse 中的 jar file 和 runnable jar file的区别如下:
jar file :jar包就是别人已经写好的一些类,然后将这些类进行打包,你可以将这些jar包引入你的项目中,然后就可以直接使用这些jar包中的类和属性以及方法。
JAR(Java ARchive)是将一系列文件合并到单个压缩文件里,就象Zip那样。然而,同Java中其他任何东西一样,JAR文件是跨平台的,所以不必关心涉及具体平台的问题。
涉及因特网应用时,JAR文件显得特别有用。在JAR文件之前,Web浏览器必须重复多次请求Web服务器,以便下载完构成一个“程序片”(Applet)的所有文件。除此以外,每个文件都是未经压缩的。但在将所有这些文件合并到一个JAR文件里以后,只需向远程服务器发出一次请求即可。同时,由于采用了压缩技术,所以可在更短的时间里获得全部数据。
runnable jar file:就是直接可以运行的jar文件。
runnable jar 是在Manifest.MF 文件中指定了 主类,而jar file没有。

Java解决执行mvn spring-boot:run报错jar时出错; zip file is empty

问题描述

在执行mvn spring-boot:run的时候,报错

[ERROR] 读取/Users/diandianxiyu_geek/.m2/repository/org/apache/tomcat/embed/tomcat-embed-core/9.0.54/tomcat-embed-core-9.0.54.jar时出错; zip file is empty
[ERROR] 读取/Users/diandianxiyu_geek/.m2/repository/org/apache/tomcat/embed/tomcat-embed-core/9.0.54/tomcat-embed-core-9.0.54.jar时出错; zip file is empty

解决方案

进入目录/Users/diandianxiyu_geek/.m2/repository/org/apache/tomcat/embed/

删除文件夹

重新执行

之后会重新下载,问题解决。

以上是关于eclipse 中的 jar file 和 runnable jar file的区别的主要内容,如果未能解决你的问题,请参考以下文章

eclipse:清除eclipse中 Runnable JAR file 的历史记录

[转]图解eclipse 查看原始类出现The jar file rt.jar has no source attachment

小技巧--解决eclipse导入的jar文件后,无法使用默认包中的方法问题

Java解决执行mvn spring-boot:run报错jar时出错; zip file is empty

Eclipse中的Run和Debug上的线程run()方法执行不同

我用jar file(附带MANIFEST.MF)导出jar包可以运行 但是用Runnable jar file却说找不到类