精华内容
下载资源
问答
  • Gradle+bootJar打包SpringBoot工程并分离jar包和配置文件

    千次阅读 热门讨论 2020-06-01 15:37:31
    Gradle+bootJar打包SpringBoot工程并分离jar包和配置文件

    使用Gradle+bootJar打包和分离lib包和配置文件

    在项目的根目录下的build.gradle文件中添加如下代码:

    // 将依赖包复制到lib目录
    task copyJar(type: Copy) {
        // 清除现有的lib目录
        delete "$buildDir\\libs\\lib"
        from configurations.compileClasspath
        into "$buildDir\\libs\\lib"
    }
    
    // 拷贝配置文件
    task copyConfigFile(type: Copy) {
        // 清除现有的配置目录
        delete "$buildDir\\libs\\config"
        from('src/main/resources')
        into 'build/libs/config'
    }
    
    // 配置bootJar进行打包
    bootJar {
    	// jar包名称,默认是settings.gradle下的工程名 rootProject.name = 'alog-server'
        baseName = 'alog-server'
        // jar包版本号
        version =  '0.0.1'
        // 排除所有的jar
        excludes = ["*.jar"]
        // lib目录的清除和复制任务
        dependsOn copyJar
        // 配置目录的清除和复制任务
        dependsOn copyConfigFile
    
        // 指定依赖包的路径
        manifest {
            attributes "Manifest-Version": 1.0,
                    'Class-Path': configurations.compileClasspath.files.collect { "lib/$it.name" }.join(' ')
        }
    }
    

    执行bootJar任务

    在这里插入图片描述

    分析打包结果

    1. 查看在工程根目录下的build目录下。
      在这里插入图片描述

    2. 查看jar包,大小只有183KB,以后替换上传到服务器端的时候会很方便。
      在这里插入图片描述

    3. 查看配置文件config目录,程序默认先加载config下的配置,再加载jar包内的配置,所以可以在外部动态修改配置。
      在这里插入图片描述
      Spring boot 启动会扫描以下位置的application.properties或者application.yml文件
      file:./config/ (jar包当前目录下的config目录)
      file:./ ( jar包当前目录)
      classpath:/config/ ( 类文件下的config目录)
      classpath:/ ( 类文件下目录)

    4. 查看lib目录
      在这里插入图片描述

    补充

    补充一、下面有留言说“baseName和version属性过期了,有替代方法吗”,答案是有的。
    在IDEA里按住ctrl+左键点击baseName查看bootJar的源码,如下:

    // 弃用注解
    @Deprecated
    public void setBaseName(@Nullable String baseName) {
        this.archiveBaseName.set(baseName);
    }
    

    这里调用的是this.archiveBaseName.set(baseName);方法,所以替代方法就是archiveBaseName,所以上面的脚本可以优化一下如下:

    // 将依赖包复制到lib目录
    task copyJar(type: Copy) {
        // 清除现有的lib目录
        delete "$buildDir\\libs\\lib"
        from configurations.compileClasspath
        into "$buildDir\\libs\\lib"
    }
    
    // 拷贝配置文件
    task copyConfigFile(type: Copy) {
        // 清除现有的配置目录
        delete "$buildDir\\libs\\config"
        from('src/main/resources')
        into 'build/libs/config'
    }
    
    // 配置bootJar进行打包
    bootJar {
    	// jar包名称,默认是settings.gradle下的工程名 rootProject.name = 'alog-server'
        archiveBaseName = 'alog-server'
        // jar包版本号
        archiveVersion = '0.0.1'
        // 排除所有的jar
        excludes = ["*.jar"]
        // lib目录的清除和复制任务
        dependsOn copyJar
        // 配置目录的清除和复制任务
        dependsOn copyConfigFile
    
        // 指定依赖包的路径
        manifest {
            attributes "Manifest-Version": 1.0,
                    'Class-Path': configurations.compileClasspath.files.collect { "lib/$it.name" }.join(' ')
        }
    }
    

    补充二 Phil01留言说copy jar包少的问题,我试了好像都可以,不过copy多一点肯定不会出问题,这里更改一下copy jar包的方法。
    在这里插入图片描述

    // 将依赖包复制到lib目录
    task copyJar(type: Copy) {
        // 清除现有的lib目录
        delete "$buildDir\\libs\\lib"
        from configurations.runtime
        into "$buildDir\\libs\\lib"
        from configurations.compileClasspath
        into "$buildDir\\libs\\lib"
    }
    
    // 拷贝配置文件
    task copyConfigFile(type: Copy) {
        // 清除现有的配置目录
        delete "$buildDir\\libs\\config"
        from('src/main/resources')
        into 'build/libs/config'
    }
    
    // 配置bootJar进行打包
    bootJar {
    	// jar包名称,默认是settings.gradle下的工程名 rootProject.name = 'alog-server'
        archiveBaseName = 'alog-server'
        // jar包版本号
        archiveVersion = '0.0.1'
        // 排除所有的jar
        excludes = ["*.jar"]
        // lib目录的清除和复制任务
        dependsOn copyJar
        // 配置目录的清除和复制任务
        dependsOn copyConfigFile
    
        // 指定依赖包的路径
        manifest {
            attributes "Manifest-Version": 1.0,
                    'Class-Path': configurations.compileClasspath.files.collect { "lib/$it.name" }.join(' ')
        }
    }
    
    展开全文
  • jar打包成exe脱离jdk环境运行的方法
  • Java jar打包成exe应用程序(超详细)

    万次阅读 多人点赞 2020-02-04 01:07:18
    Java jar打包成exe应用程序,可在无JDK/JRE环境下运行 前言 近期做了一个前后端合并的spring boot项目,但是要求达成exe文件,提供给不懂电脑的小白安装使用,就去研究了半天,踩了很多坑,写这篇文章,是想看到这篇...

    Java jar打包成exe应用程序,可在无JDK/JRE环境下运行

    前言

    近期做了一个前后端合并的spring boot项目,但是要求达成exe文件,提供给不懂电脑的小白安装使用,就去研究了半天,踩了很多坑,写这篇文章,是想看到这篇文章的人,按照我的步骤走,能少踩坑。

    准备

    准备工作:

    1. 一个jar包,没有bug能正常启动的jar包
    2. exe4j,一个将jar转换成exe的工具,链接:https://pan.baidu.com/s/1J30uUMJcYnqWCJSr6gkM5w
      提取码:6esr
      注册码:L-g782dn2d-1f1yqxx1rv1sqd
    3. inno setup,一个将依赖和exe一起打成一个安装程序的工具,链接:https://pan.baidu.com/s/1DgFo1ceM_8Bqx_b-veibbQ
      提取码:g9jd

    开始

    以我为例子,我将jar包放在了桌面
    在这里插入图片描述
    打开安装好的exe4j
    在这里插入图片描述
    直接下一步进入界面,选择JAVA转EXE
    在这里插入图片描述
    然后点下一步,输入名称和输出路径
    在这里插入图片描述
    继续点击下一步,选择启动模式
    在这里插入图片描述
    下方有个选项,需要设置打包后的程序兼容32和64位系统
    在这里插入图片描述
    进来后勾选上
    在这里插入图片描述
    然后一直下一步,一直出现如下界面,开始选择jar包以及配置
    在VM参数配置的地方加上:-Dfile.encoding=utf-8
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    点击下一步,配置JRE
    在这里插入图片描述
    下拉框点击后进入如下界面
    在这里插入图片描述
    在这里插入图片描述
    照着这个样子写的目的是,最终会把本地jre目录和exe一起打包,让exe文件自己去根据路径去查找一起打包的jre,可不用再安装jdk
    在这里插入图片描述
    接着下一步,选择Client VM
    在这里插入图片描述
    然后一直下一步,最终出现如下界面
    在这里插入图片描述
    这个时候你会发现桌面多了一个demo.exe文件,这个时候先别着急点开,接下来就是将jre和exe文件再打个包合并,达到在没有jdk电脑环境下也能运行

    打开inno setup,左上角File - New
    在这里插入图片描述
    直接点下一步,填写配置,应用名称,版本等,随意
    在这里插入图片描述
    然后点击下一步,这个地方默认就行,直接下一步
    在这里插入图片描述
    接着选择生成好的exe文件
    在这里插入图片描述
    然后下一步,进入这个界面保持默认,直接下一步
    在这里插入图片描述
    依旧下一步,不用管
    在这里插入图片描述
    继续下一步,这里是选择语言
    在这里插入图片描述
    然后就是选择输出路径和填写安装程序的名字了
    在这里插入图片描述
    然后下一步,直接点Next,然后结束

    配置到最后一步了,脚本文件,到这里会弹出问你是否马上编译,选择否,先把脚本写好再自己编译
    在这里插入图片描述
    然后到了最后一步了,把本地的JRE写进脚本
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    Source: "自己本地JRE路径\*"; DestDir: "{app}\{#MyJreName}"; Flags: ignoreversion recursesubdirs createallsubdirs

    然后直接编译就好了,会提示保存当前脚本,随便起个名字,下个还可以继续用
    在这里插入图片描述
    在这里插入图片描述
    然后等待绿色滚动条结束
    在这里插入图片描述
    当绿色滚动条结束后,桌面会多了一个setup.exe文件
    在这里插入图片描述
    也同时会跳出一个安装的,因为程序帮你自动启动生成的安装程序了,安装就可以了,安装的时候记得勾选创建快捷方式
    在这里插入图片描述
    这个就是最后的程序了,双击运行就可以看到结果了,把setup.exe文件给别人安装,就都可以看到自己的程序了

    展开全文
  • IDEA导出jar打包成exe应用程序

    万次阅读 多人点赞 2020-06-07 17:57:32
    Java jar打包成exe应用程序,可在无JDK/JRE环境下运行 老师让做一个小项目,但是需要打包发布出来,因此在网上查了很多资料之后总结的经验。 1. IDEA导出jar包,选择File -> Project Structure (快捷键:Ctrl+...



    Java jar打包成exe应用程序,可在无JDK/JRE环境下运行

    老师让做一个小项目,但是需要打包发布出来,因此在网上查了很多资料之后总结的经验。

    1. IDEA导出jar包,选择 File -> Project Structure (快捷键:Ctrl+Alt+Shift+S)。

    2. 选中"Artifacts",点击"+"选择jar,然后选择"from modules with dependencies"。

    3. 选择文件图标,选中入口类(含main方法),点击“OK”,再次点击“OK”。

    4. 选择“Build -> Build Artifacts”下的“Build”或者“Rebuild”按钮即可生成最终的可运行的jar.

    5. 在目录中可以看到jar包。

    6. 在cmd窗口中,切换到jar包所在的目录,执行命令:java -jar xxx.jar,运行jar包查看是否有错误。

    7. 下载安装exe4j和inno setup complier
    exe4j
    :将jar转换成exe的工具,链接: https://pan.baidu.com/s/1PwIiccbScKoknI0hNqLlLQ
    提取码: p52i 

    注册码:
    A-XVK267351F-dpurrhnyarva
    A-XVK204432F-1kkoilo1jy2h3r
    A-XVK246130F-1l7msieqiwqnq
    A-XVK249554F-pllh351kcke50
    A-XVK238729F-25yn13iea25i

    inno setup:将jre和exe打包成一个安装程序的工具,
    链接: https://pan.baidu.com/s/1xfoC4xO_Kskd5OZv-_O2kQ
    提取码: 8fr4 

    8. 打开安装好的exe4j,直接下一步进入界面。

    9. 选择“jar in exe” mode 选项,下一步。

    10. 输入名称和输出路径,下一步。

    11. 选择GUI或者控制台输出,输入应用名称,设置应用图标,下一步。

    12. 选中“32-bit or 64-bit”,勾选“generate 64-bit executable”,下一步。

    13. 再VM Parameters输入“ -Dappdir=${EXE4J_EXEDIR} ”,点击绿色+号。

    14. 选择jar包路径,OK。

    15. 选择应用程序的主类(含main方法),下一步。

    16. 选择jdk版本。

    17. 选中“ Search sequence ”,选中绿色+号添加jre目录。

    18. 选择“ Directory ”,目录输入“ .\jre ”,下一步。

    19. 选择“ Client hotspot VM ”,下一步。

    20. 一直下一步,等待绿色进度条完成,在输出目录里面多了一个可运行程序。

    21. 点击“ Click Here to Start the Application ”即可运行程序。

    22. 打开inno setup complier软件,File -> new,下一步,填写配置,应用名称,版本等,下一步。

    23. 默认,下一步。

    24. 选择exe程序,下一步。

    25. 默认,下一步。

    26. 继续下一步。

    27. 选择语言,下一步。

    28. 选择输出路径,输入应用名称,下一步。

    29. 下一步,完成,先不运行脚本文件。

    30. 添加jre目录。

    31. 在最后一行添加jre目录。
    Source: "自己本地JRE路径\*"; DestDir: "{app}\{#MyJreName}"; Flags: ignoreversion recursesubdirs createallsubdirs

    32. 编译运行,会提示保存当前脚本,随便起个名字,下个还可以继续用。

    33. 当绿色滚动条结束后,桌面会多了一个demo1.exe文件。

    34. 也同时会跳出一个安装的,因为程序帮你自动启动生成的安装程序了,安装就可以了,安装的时候记得勾选创建快捷方式,这个就是最后的程序了,双击运行就可以看到结果了,把demo1.exe文件给别人安装,就都可以看到自己的程序了。

    展开全文
  • 可执行jar打包成exe文件,最常见的大概就是exe4j了吧。不过,现在都2020年了,这里介绍一下,使用 java8提供的 javapackager 的方式来实现。 预备工作  首先,需要预备工作 1.java8环境  这个就不用多说了 2....

      可执行jar打包成exe文件,最常见的大概就是exe4j了吧。不过,现在都2020年了,这里介绍一下,使用 java8提供的 javapackager 的方式来实现。

    预备工作

      首先,需要预备工作

    1.java8环境

      这个就不用多说了

    2.Inno Setup Compiler

      window上软件打包工具

    3.wix

      打包成exe文件需要

    4.示例的可执行jar

      文中给出的案例是使用Swing组件弹出一个对话框,代码很简单,就两行代码

    package com.frank.test;
    public class Java2exe {
        public static void main(String[] args) {
            javax.swing.JOptionPane.showMessageDialog(null, "hello java2exe");
            System.exit(0);
        }
    }
    

      打成可执行的jar,也很简单,比如使用的是eclipse,可以:选中项目,右键,选择 Export

    导出

      导出时的配置勾选

    导出配置勾选

    开始打包

      首先进入jar所属文件夹

      比如我是放在 D:\tmp\java2exe 目录下,进来,然后,打开cmd,cmd也得进入D:\tmp\java2exe 目录。这里有个小技巧,直接在文件夹的地址栏 输入cmd,再回车,就直接进入cmd界面,并且已经进入当前路径

      再执行打包命令

    javapackager -deploy -native image  -outdir outdir -outfile Java2exe -srcfiles java2exe.jar -appclass com.frank.test.Java2exe -name Java2exe
    

      然后,你就会看到,文件夹内多了一个 outdir 文件夹,里面有很多东西,在outdir/bundles/Java2exe目录下,有一个 Java2exe.exe 文件,它就是我们最终需要的exe可执行文件

    结果验证

      双击Java2exe.exe文件测试一下

    验证结果

    参数详解

      好了,已经可以达到预期了。但是 打包过程中,使用到的命令,具体是什么含义呢?一个一个来解释

    javapackager -deploy -native image  -outdir outdir -outfile Java2exe -srcfiles java2exe.jar -appclass com.frank.test.Java2exe -name Java2exe
    

      其中:

      javapackager 是java8自带的打包程序

      -deploy 表示要打包成exe或者其他平台的包

      -native image 创建原生的镜像(打成window的exe)

      -outdir outdir ,输出的目录,后面的具体目录

      -outfile Java2exe 输出的文件,后面是文件名

      -srcfiles java2exe.jar ,要打包的jar文件,后面是具体文件

      -appclass com.frank.test.Java2exe ,jar的全限定名,就是详细包名+类名

      -name Java2exe ,最终给使用者呈现的名字,就是 结果验证 过程中,双击的那个文件名

    当然,还有其他的参数,比如 -description 应用的描述、-Bicon 图标等等。在cmd中,使用 javapackager 可以列举出所有的参数及其注释

    用户无JRE环境,可以直接运行?

      可以的。如果要提供给用户使用,用户电脑上没有安装JRE环境,需要把 outdir 全部提供给用户,因为 outdir文件夹内,包含了JRE所需的所有文件。

    展开全文
  • jar打包工具 jar

    2009-10-28 13:33:47
    本人经历三天制作出炉的jar打包工具,请大家下载试用。
  • jar命令(一)-jar打包class文件

    万次阅读 2017-03-16 17:44:22
    本文通过一个例子:将几个简单的类打包,并标志主类 来介绍jar的常用命令
  • 把可执行jar打包成exe文件

    万次阅读 多人点赞 2018-10-10 20:00:04
    title: 把可执行jar打包成exe文件 categories: MyApplications 截图文字识别 date: 2018-10-10 19:39:02 把可执行jar打包成exe文件 摘要 eclipse中导出可执行jar exe4j下载安装破解 使用exe4j把可...
  • 在ECLIPSE下,如果要将JAVA应用程序打包的话,一般用file菜单下的EXPORT就可以EXPORT成JAR文件里,但如果工程里有其他的库文件的话,那ECLIPSE就无能为力了.
  • idea java web项目导出为jar打包成可运行exe程序

    千次阅读 多人点赞 2019-12-04 16:12:29
    咳咳咳~,言归正传,我那个朋友呢,他不是一个开发者,所以项目做好后,让他安装JDK、tomcat,根本就是不现实的啊,于是摸索了一阵之后,想到 idea将web项目 打包成jar一样使用, 然后再用 exe4j将jar打包成 exe文件...
  • 当在本地打成jar包向服务器传输时,由于网络太慢,所以传输时间会很长,此时可以将更改的class文件传输到服务器(较快),再使用jar命令重新打包 目前为止最完美的命令: 在上命令之前,先来个文件的目录结构图: ...
  • 由于公司业务需求原因,让我一个做安卓app的来做一个windows桌面应用程序,由于对JAVA熟,项目周期紧,所有就没有考虑别...将你的Java项目打包为可执行Jar 这里就不赘述怎么打包jar了。打包jar 到文件所在路径下打...
  • jar打包成windows系统服务,并实现开机自启 ** 前阵子将系统部署到客户服务器上后,比较坑的是客户那边机房经常停电。客户不会自己启动服务(实际只要双击几个图标就行)。于是计划给他们搞一个开机自启。 ...
  • jar 打包命令详解

    万次阅读 多人点赞 2016-02-26 18:05:41
    本文详细讲述了JAR命令的用法,对于大家学习和总结jar命令的使用有一定的帮助作用。具体如下: JAR包是Java中所特有一种压缩文档,其实大家就可以把它理解为.zip包。当然也是有区别的,JAR包中有一个META-INF\...
  • java命令行基础:jar打包

    千次阅读 2018-06-29 09:35:20
    打包一个可以直接利用java -jar ***就可以运行的jar包步骤: jar cvfm lottery.jar MANIFEST.MF jdbc.properties com如果出现:java.io.IOException: invalid header field这样的错误的话,就说明...
  • 【Linux】记录一次jar打包成RPM包

    千次阅读 2019-05-24 17:41:54
    目录 系统环境&前置条件 安装rpmbuild 创建rpmbuild目录 系统环境&前置条件: CentOS-7-x86_64 ...很多文章都说执行yum install rpmbuild,但执行后提示说找不到这个包。...[root...
  • jar打包以及classpath的配置

    千次阅读 2017-03-01 21:18:36
    当写好了自己的常用类时,为了方便自己import这些常用类,可以将这些常用类的class文件打包jar文件然后在将其配置到classpath当中。 2 jar包压缩的方法 首先进入这些类的package的父目录(如这些类的package...
  • 首先,我们要有安装了docker 我们需要有一个可运行的jar文件: ... ...我服务器上有一个可运行的注册中心jar文件,端口...我们需要创建一个文件来存放打包镜像的命令。 touch Dockerfile 使用 vi 或者 vim编辑D...
  • java可执行jar打包exe的简单实现方式

    千次阅读 2017-12-20 20:33:38
    ---------exe4j打包可执行的exe: 1、下载地址:https://www.ej-technologies.com/download/exe4j/files  然后一键式安装。注意一点安装完成后进行注册: 注册码:L-g782dn2d-1f1yqxx1rv1sqd 。如果不进行注册完成...
  • 在eclipse中我们知道如何将一个项目导出为jar包,现在普遍AndroidStuido开发,这里一步一步详加介绍AS项目打包jar...
  • Jar打包中读取.txt问题

    千次阅读 2018-07-27 12:18:41
    //读取该类下的.txt文档,为jar打包做准备 InputStream is=this.getClass().getResourceAsStream("WordTree.txt"); InputStreamReader read1 = new InputStreamReader(is, "utf-8"); ...
  • 默认bootJar打包结构: -BOOT-INF -lib -class -org -META-INF 现在不让第三方依赖jar打包到BOOT-INF/lib中,即不生成lib目录,其余目录不变。build.gradle文件应该怎么配置?
  • install:install-file -Dfile=C:\Users\dell\Desktop\aspose-words-16.5.0-jdk16.jar -DgroupId=com.aspose.words -DartifactId=aspose-words -Dversion=1.0 -Dpackaging=jar -f pom.xml 2、 <...
  • 将可执行的jar打包成exe文件

    千次阅读 2016-10-02 20:58:58
    我们都知道java是平台无关性,可以打包jar文件,到任何操作系统有jre环境的电脑都可以允许。可以说打包成exe文件就相当于舍弃了java的平台无关优势。不过由于在Windows上双击默认无法直接执行jar程序,因此有时候...
  • 使用fat jar打包后,发现设置的托盘图标文件不显示(透明),只需如下操作即可: 将图标文件依照程序中的路径,拷贝至打包成功的jar文件同目录下,图标即可正常显示。例如,博主设置了图标后,eclipse中调试的显示: ...
  • Maven将本地jar打包到本地仓库

    万次阅读 2018-08-25 01:06:49
    开发测试中偶尔碰到个别jar包是本地磁盘Jar文件,但构建的是maven项目,在pom.xml文件中如何实现引入这些jar包进行简单测试呢? 对于这个问题自己作了简单的本地化处理,如下操作自定义本地仓库的依赖,便于简单的...
  • jar打包与常见异常的解决方法

    千次阅读 2016-09-27 15:22:39
    存在以上两个文件,使用命令打包jar文件出现如下异常 在网上找了几个博客都说是MAINFEST.MF文件格式有无,检查了好几遍都没发现问题,后来灵机一定,觉得配置文件应该放在class文件的前面,一试果然好使 二、...
  • 因为一些特殊的原因,需要使用一些本地的jar进行依赖,加载外部jar后编码过程中没有任何问题,但是打包时一直报“程序包不存在”。思考一下:Maven本质上是一个插件框架,它的核心并不执行任何具体的构建任务,所以...
  • Java之jar打包

    万次阅读 2016-03-30 00:29:26
    1、jar简介Java归档文件格式(Java Archive, JAR)能够将多个源码、资源等文件打包到一个归档文件中。这样,有如下好处: 安全性 可以对整个jar包的内容进行签名。 减少了下载时间 如果applet被打包成一个jar文件,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 245,989
精华内容 98,395
关键字:

jar打包