码农知识堂 - 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
  • 相关阅读:
    JavaScript实现循环读入整数进行累加,直到累加的和大于1000为止的代码
    Vite-Wechat网页聊天室|vite5.x+vue3+pinia+element-plus仿微信客户端
    BeanFactory创建流程
    RBCM-PDA-CUR@PLGA红细胞膜包裹聚多巴胺涂覆PLGA/细胞膜包覆纳米拓扑结构阵列
    Python爬虫抢购某宝秒杀商品
    json数据传输压缩以及数据切片分割分块传输多种实现方法,大数据量情况下zlib压缩以及bytes指定长度分割
    关于 HTTPS 和 SSL
    图书管理系统
    工作上的三个境界:能做,能做好,能持续做好
    力扣(LeetCode)775. 全局倒置与局部倒置(C++)
  • 原文地址: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号