个人随笔
目录
Eclipse导出可执行Jar
2019-06-26 23:27:05

我们再eclipse上新建一个java工程,然后想要打包为可执行的jar,也就是可以直接java -jar xxxx.jar 命令执行的程序。有如下方法。

1、maven项目

如果只是一个普通的maven项目,而不是springboot,那么可以在pom.xml的build标签加入如下内容即可:

  1. <plugins>
  2. <plugin>
  3. <artifactId>maven-compiler-plugin</artifactId>
  4. <configuration>
  5. <source>1.6</source>
  6. <target>1.6</target>
  7. </configuration>
  8. </plugin>
  9. <plugin>
  10. <groupId>org.apache.maven.plugins</groupId>
  11. <artifactId>maven-shade-plugin</artifactId>
  12. <version>1.4</version>
  13. <configuration>
  14. <createDependencyReducedPom>false</createDependencyReducedPom>
  15. </configuration>
  16. <executions>
  17. <execution>
  18. <!-- 执行package的phase -->
  19. <phase>package</phase>
  20. <!-- 为这个phase绑定goal -->
  21. <goals>
  22. <goal>shade</goal>
  23. </goals>
  24. <configuration>
  25. <!-- 过滤掉以下文件,不打包 :解决包重复引用导致的打包错误-->
  26. <filters>
  27. <filter>
  28. <artifact>*:*</artifact>
  29. <excludes>
  30. <exclude>META-INF/*.SF</exclude>
  31. <exclude>META-INF/*.DSA</exclude>
  32. <exclude>META-INF/*.RSA</exclude>
  33. </excludes>
  34. </filter>
  35. </filters>
  36. <transformers>
  37. <transformer
  38. implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
  39. <resource>META-INF/spring.handlers</resource>
  40. </transformer>
  41. <!-- 打成可执行的jar包 的主方法入口-->
  42. <transformer
  43. implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
  44. <mainClass>com.gdpost.App</mainClass>
  45. </transformer>
  46. <transformer
  47. implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
  48. <resource>META-INF/spring.schemas</resource>
  49. </transformer>
  50. </transformers>
  51. </configuration>
  52. </execution>
  53. </executions>
  54. </plugin>
  55. </plugins>
  56. <defaultGoal>compile</defaultGoal>

当然需要修改主方法入口,然后maven build 输入package即可。

2、SpringBoot项目

这个简单,只要在build中加入如下内容,然后maven install或者package即可

  1. <finalName>suibibk</finalName>
  2. <plugins>
  3. <!-- 可以将项目打包成可执行jar包 -->
  4. <plugin>
  5. <groupId>org.springframework.boot</groupId>
  6. <artifactId>spring-boot-maven-plugin</artifactId>
  7. </plugin>
  8. </plugins>
  9. </build>

当然不一定非得叫做suibibk。

3、普通java项目

假如既不是maven项目,也不是web项目,而是普通java项目。可以直接用eclipse的Export功能导出可执行jar.

会导出成一个文件夹, 若没有第三方jar包,则导出后就可以直接java -jar jarfile 运行了,
但是当有第三方jar的时候,此时用winrar解压查看文件,以及导出来的清单如下:

执行就会报如下错误:

仿佛是不能够加载第三方的jar包,导致不能解析一些名称。

然后选择第二种导出:

此时用winrar解压查看文件,以及导出来的清单如下:

分析可以发现,就是MAINIFEST.MF的内容不同,若是想要合并为同一个文件夹,应该只需要对第二种进行想要的修改,将lib放入jar包即可,但是为了方便以后维护,只需要上传jar不需要上传lib,那么这个程序应该要选择第二种方式导出。

4、用Fat jar打包

这个插件还是很好用的,可以把第三方jar也打包进入一个jar中。

我用的是上面的第二种,jar和lib分离的方法

 202

啊!这个可能是世界上最丑的留言输入框功能~


当然,也是最丑的留言列表

有疑问发邮件到 : suibibk@qq.com 侵权立删
Copyright : 个人随笔   备案号 : 粤ICP备18099399号-2