专栏首页上善若水004-IntelliJ IDEA导出Java 可执行Jar包

004-IntelliJ IDEA导出Java 可执行Jar包

保证自己的Java代码是没有问题的,在IDEA里面是可以正常运行的,然后,按下面步骤:

打开File -> Project Structure -> Artifacts,如下图

点击“+”,选择“Jar”,选择Empty或From modules with dependencies,后者会把在项目中用到的Jar包解压开,当成项目的一部分,打包到最后的Jar包中。但是这样会有一个问题,即,如果项目中引用的Jar包有签名过,最后打包成的Jar包运行时会抛出错误:

“java.lang.SecurityException: Invalid signature file digest for Manifest main attributes”

因此,笔者选择的是Empty,然后在“Output Layout”中,把自己要打包的文件、文件夹添加进去。对于外部引用的包,笔者全部放在lib目录下,因此,在Class Path中,把依赖的jar包添加进去,例如:

lib/javax.servlet-3.0.0.v201112011016.jar lib/jetty-all-9.1.5.v20140505.jar lib/json-simple-1.1.1.jar

设置好Main Class,这就不用多说了。

点击OK。

回到IDEA,选择Build -> Build Artifacts,成功生成Jar包。生成的Jar包位于上图设置的Output directory。

使用命令java -jar xxxxx.jar来执行jar包。

参考链接

http://blog.sina.com.cn/s/blog_3fe961ae0102uy42.html

保证自己的Java代码是没有问题的,在IDEA里面是可以正常运行的,然后,按下面步骤:

打开File -> Project Structure -> Artifacts,如下图

image

点击“+”,选择“Jar”,选择Empty或From modules with dependencies,后者会把在项目中用到的Jar包解压开,当成项目的一部分,打包到最后的Jar包中。但是这样会有一个问题,即,如果项目中引用的Jar包有签名过,最后打包成的Jar包运行时会抛出错误:

“java.lang.SecurityException: Invalid signature file digest for Manifest main attributes”

因此,笔者选择的是Empty,然后在“Output Layout”中,把自己要打包的文件、文件夹添加进去。对于外部引用的包,笔者全部放在lib目录下,因此,在Class Path中,把依赖的jar包添加进去,例如:

lib/javax.servlet-3.0.0.v201112011016.jar lib/jetty-all-9.1.5.v20140505.jar lib/json-simple-1.1.1.jar

设置好Main Class,这就不用多说了。

点击OK。

回到IDEA,选择Build -> Build Artifacts,成功生成Jar包。生成的Jar包位于上图设置的Output directory。

使用命令java -jar xxxxx.jar来执行jar包。

参考链接

http://blog.sina.com.cn/s/blog_3fe961ae0102uy42.html

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • spacemacs HowToUse 常用概念和模式切换

    上善若水.夏
  • s001android逆向安全初级篇之apk逆向常用工具及简单使用一览

    关于apk 逆向中的一些工具的使用,看了不少文章,也使用过有很长一段时间了,今天对此做一总结:

    上善若水.夏
  • 004-golang 正则表达式的使用

    上善若水.夏
  • Maven 强制导入jar包

    Jacob丶
  • LVM的创建、扩展、收缩及快照功能的介绍

    LVM是在物理卷(Physical Volume)上再建立了一层逻辑层。可以将多块磁盘组成卷组,再划分为多个逻辑卷。

    二狗不要跑
  • 第1章 ASP.NET4.0开发技术概述

    1. 动态网页技术主要分为客户端动态网页技术和 服务器端动态网页技术 两种。

    静心物语313
  • 为 Flask 应用添加用户登录

    Flask 是什么?我想打开这篇文章的你应该不陌生,但是我还引用维基百科上的内容做个简短的介绍。

    keinYe
  • Android雷达效果

    aruba
  • JavaScript之引用类型介绍

           引用类型的值(对象)是应用类型的一个实例。在ECMAScript中,引用类型是一种数据结构,用于将数据和功能组织在一起,用于将数据和功能组织在一起...

    郑小超.
  • 「走进k8s」Kubernetes1.15.1配置软知识yaml(16)

    3.缩进时不允许使用Tab键,只允许使用空格。(可以通过编译器将tab键设置成2个空格或者4个空格)

    IT故事会

扫码关注云+社区

领取腾讯云代金券