如何打jar包,两种方法轻松搞定

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何打jar包,两种方法轻松搞定相关的知识,希望对你有一定的参考价值。

参考技术A 1.在dos下面打包jar文件 D:\jdk1.5.0_07\bin> jar /help 用法:jar ctxu[vfm0Mi] [jar-文件] [manifest-文件] [-C 目录] 文件名 ... 选项: -c 创建新的存档 -t 列出存档内容的列表 -x 展开存档中的命名的(或所有的〕文件 -u 更新已存在的存档 -v 生成详细输出到标准输出上 -f 指定存档文件名 -m 包含来自标明文件的标明信息 -0 只存储方式;未用ZIP压缩格式 -M 不产生所有项的清单(manifest〕文件 -i 为指定的jar文件产生索引信息 -C 改变到指定的目录, 在命令行中运行刚刚生成的jar,命令如下: java -jar test.jar 如果在jar中有一些System.out.prinln语句,运行后想看看打印出的内容,可以用一下命令: java -jar test.jar >log.txt 输出信息会被打印到log.txt中,当然log.txt自动生成,并位于和test.jar一个目录中。 这里也可以新建一个start.bat文件,创建后;右键---编辑,输入:java -jar test.jar >log.txt;以后直接双击start.bat即可运行test.jar啦。 注意,如果你是在文件导出放在如:E盘,则你需要导入得包也要放在这个目录里。 如果一个文件名是一个目录,它将被递归处理。 清单(manifest〕文件名和存档文件名都需要被指定,按 'm ' 和 'f '标志指定的相同顺序。
示例1:将两个class文件存档到一个名为 'classes.jar ' 的存档文件中: jar cvf classes.jar Foo.class Bar.class 示例2:用一个存在的清单(manifest)文件 'mymanifest ' 将 foo/ 目录下的所有 文件存档到一个名为 'classes.jar ' 的存档文件中: jar cvfm classes.jar mymanifest -C foo/ .
2.用eclipse打包jar文件
Eclipse通过导出的方式(右键单击项目,之后选择Export)打包java类文件生成jar包。
方法一:(在项目工程没有引用外部jar包时,直接导出) 选中工程---->右键,Export...--->Java--->JAR file--->next-->选择jar file的路径及名称-->next-->next---> 选择main class--->finish. 方法2: 当工程引用了其他的外部jar时,由于eclipse不支持同时导出外部jar包的功能,所以比较麻烦一点;具体步骤如下: 生成manifest file:选中工程--->右键,Export--->Java--->JAR file--->选择jar file的路径及名称--->next--->next--->next;

Spring boot如何引入本地jar包?

参考技术A         在开发过程中有时会用到maven仓库里没有的jar包或者本地的jar包,这时没办法通过pom直接引入,那么该怎么解决呢?一般有两种方法。1,将本地jar包安装在本地maven库 ;2,将本地jar包放入项目目录中。本文主要讲第二种方式,这又分两种情况,一种是打包jar包,第二种是打包war包

先看看jar包的结构,打包后jar包的路径在BOOT-INF\lib目录下,依赖的所有jar包都在此目录中,如下图所示。

首先,在项目目录中resources下创建文件夹jar用来存放本地jar包,如下图所示。

第二、pom文件中加入如下内容,以添加json-lib-2.3-jdk15.jar为例。

  <dependency>           

             <groupId>com.ckfinder</groupId>           

             <artifactId>json-lib</artifactId>         

               <version>2.3</version>          

              <scope>system</scope>          

              <systemPath>$project.basedir/src/main/resources/jar/json-lib-2.3-jdk15.jar</systemPath>       

 </dependency>

注意,groupId,artifactId,version可随便写,这时候在项目中运行是没问题了,但是使用命令mvn clean package打包之后BOOT-INF\lib里面并没有json-lib-2.3-jdk15.jar包,还需要pom文件中做如下配置:

      <plugin>           

             <groupId>org.springframework.boot</groupId>         

               <artifactId>spring-boot-maven-plugin</artifactId>           

                 <configuration>

                          <includeSystemScope>true</includeSystemScope>

                     </configuration>         

   </plugin>

注意粗体部分的配置,之后再使用mvn clean package打包就可以了。

相对与jar包,第三方jar包在war包中的目录如下图所示:

使用mvn clean package命令打包时需要在pom文件加入以下内容

   <plugin>                 

       <groupId>org.apache.maven.plugins</groupId>             

       <artifactId>maven-war-plugin</artifactId>                

        <version>2.4</version>                

                    <configuration>                        

                            <webResources>                       

                                     <resource>                           

                                         <directory>src/main/resources/jar/</directory>                      

                                          <targetPath>WEB-INF/lib/</targetPath>                         

                                           <includes>                               

                                                 <include>**/*.jar</include>                        

                                           </includes>                          

                                      </resource>                   

                             </webResources>              

                  </configuration>            

 </plugin>

以上是关于如何打jar包,两种方法轻松搞定的主要内容,如果未能解决你的问题,请参考以下文章

Spring boot如何引入本地jar包?

如何使用maven把模块生成的jar包上传到中央仓库去

spring-boot项目直接读取jar包内文件的最简单方法

经典Java面试100例,轻松搞定BAT——高频面试题(中)

两种方式将Java项目打成jar包

spring boot 打jar包,获取resource路径下的文件