码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 关于java jar包说明


    复杂的java应用,或者library,最终会以jar文件形式发布。

    jar分为两种:

    FatJar (JDK自己的)

    包含应用程序所有内容,包括配置等资源文件、依赖其它lib的jar文件
    mvn package默认打出来的包。平常我们我们打的包,都是FatJar

    FatJar存在形式,如下:

    • jar包类型。通过pom.xml中jar指定
    • war包类型。通过pom.xml中war指定

    ThinJar(Spring提供的)

    仅包含核心代码。其它资源文件、依赖其它lib的jar文件。

    ThinJar启动时,通过-Dloader.path=${resources_path},${lib_path}来指定并引用。
    这种启动方式,是PropertiesLauncher机制。

    PropertiesLauncher,默认从当前目录或者classpath,寻找loader.properties文件。
    也可以通过System properties变量loader.config.location来设置loader.properties文件的位置。
    如果文件不存在,也可以通过System properties进行相关设置

    loader.properties文件内容主要包含两个变量,如下:

    • loader.path: a comma-separated list of directories (containing file resources and/or nested archives in *.jar or *.zip or archives) or archives to append to the classpath. BOOT-INF/classes,BOOT-INF/lib in the application archive are always used
    • loader.main: the main method to delegate execution to once the class loader is set up. No default, but will fall back to looking for a Start-Class in a MANIFEST.MF, if there is one in ${loader.home}/META-INF.

    ThinJar存在形式,如下(同FatJar):

    • jar包类型。通过pom.xml中jar指定
    • war包类型。通过pom.xml中war指定

    另外,还需要在pom.xml中spring-boot-maven-plugin进行配置:

    
    org.springframework.boot
    spring-boot-maven-plugin
    
        true
        ZIP
     
    xml
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    关于PropertiesLauncher,请参考

    • executable-jar Doc
    • PropertiesLauncher API
  • 相关阅读:
    TypeScript 快速入门之基础语法(一篇文章精通系列)(我的第一个TS程序【一】)【WebStorm版本】
    你不一定知道的四种遍历进程的方法(c语言)
    VR全景如何助力乡村振兴,乡村发展在哪些方面用到VR全景技术
    数通运营商方向常见面试问题(第三部分)
    数据结构------排序1
    MySQL 8.2 Command Line Client打开时一闪而过闪退问题
    Spring Boot 框架
    『NLP学习笔记』图解GPT3(How GPT3 Works-Visualizations and Animations)
    辰视工业级视觉·汽车主机厂动力总成车间中无序工件上下料解决方案
    Unity3D AStar地图编辑与寻路测试详解
  • 原文地址:https://blog.csdn.net/junlaiyan/article/details/132776159
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号