前言文章篇幅较长,但是包含了SpringBoot 可执行jar包从头到尾的原理,请读者耐心观看。同时文章是基于SpringBoot-2.1.3进行分析。涉及的知识点主要包括Maven的生命周期以及自定义插件,JDK提供关于jar包的工具类以及Springboot如何扩展,最后是自定义类加载器。spring-boot-maven-pluginSpringBoot 的可执行jar包又称fat jar
Spring Boot 有一个很方便的功能就是可以将应用打成可执行的 Jar。那么大家有没想过这个 Jar 是怎么运行起来的呢?本篇博客就来介绍下 Spring Boot 可执行 Jar 包的运行原理
java -jar/-cp启动添加外部的依赖包 启动java主要有两种方式,分别为:java -jar test.jarjava -cp/-classpath test.jar com.main.Test。然后分别讲一下这两种方式启动程序时,如何加载外部依赖的包。为了方便大家理解,首先说一下Java的ClassLoader。ClassLoader的具体作用就是将class文件加载到jvm虚拟机
转载 2023-07-15 19:48:40
237阅读
jar 命令详解  jar 是随 JDK 安装的,在 JDK 安装目录下的 bin 目录中,Windows 下文件名为 jar.exe,Linux 下文件名为 jar。它的运行需要用到 JDK 安装目录下 lib 目录中的 tools.jar 文件。不过我们除了安装 JDK 什么也不需要做,因为 SUM 已经帮我们做好了。我们甚至不需要将 tools.jar 放到 CLASSPATH 中。  使用
转载 2023-07-15 20:04:29
311阅读
编写一个Java程序其实很简单,但是Java程序的运行过程却是非常复杂的。所以java运行原理这部分知识大家一定要掌握,那么今天我们就给大家讲解一下java运行原理!java运行的原理表示:首先源文件通过编译器编译成字节码文件class,然后在通过JVM中的解释器将字节码文件生成对应的可执行文件。所以java即时编译语言也是解释性语言;首先通过编译器编译,将源程序编译形成class文件,由于不同平
转载 2023-07-20 13:25:39
208阅读
导语在运用Spring Boot 后,我们基本上摆脱之前项目每次上线的时候把项目打成war包。当然也不排除一些奇葩的规定,必须要用war包上线,不过很多时候,我们对一些东西只是处在使用的阶段,并不会去深入的研究使用的原理是什么,这貌似也是大多数人的固定思维。或许正是如此,总会有些没有固定思维的人会去积极的探索原理,当然这话不是说我是积极的,我其实也是只原理的搬运工。今天和大家来简单的说下Sprin
转载 2023-07-15 19:47:50
259阅读
# Java Jar包部署原理解析 ## 一、流程概述 在部署Java应用程序时,通常会将代码打包成一个可执行的Jar包,然后在服务器上进行部署和运行。下面是部署Java Jar包的基本流程: ```mermaid pie title Java Jar包部署流程 "编写Java代码" : 30% "编译Java代码" : 20% "打包成Jar包" : 20%
原创 2024-03-25 03:59:32
63阅读
首先了解一下下面几个概念,讲得不太准确: 1、JVM JVM是class以及jar(实际上就是很多个class压缩在一起)的运行环境,特征就是java和javaw命令,通过这两个命令,你可以执行class和jar文件。你可以通过-classpath参数指定你需要加载的jar文件 2、JDK JDK就是JAVA的命令行开发环境,内置了JVM,特征就是javac命令,这个命令允许你将.java
转载 2024-04-12 08:46:38
94阅读
上一篇介绍到,我们在Eclipse里导出jar包后,直接点击jar包就能运行。 假设这里有一个人,他在他的电脑上接收了这个jar包,可是,无论他狂点jar包多少次, 电脑还是一点反应都没有,这时候他就应该了解一下原理了。我们点击jar包时,电脑会自动从环境变量中寻找能加载运行这个jar包的软件,这里他要找的的软件叫做JRE(java runtime environment)。回顾一下:我们安装E
转载 2023-06-06 12:13:56
285阅读
elipse打jar包一般有两种:一种是普通的jar file,另外一种是Runnable jar file。对于后者必须指定一个拥有main函数的类作为这个jar包的程序入口。具体的方法是修改jar包内目录META-INF下的MANIFEST.MF文件。比如有个叫做Test.jarjar包,里面有一个拥有main函数的类:test.someClassName。只要在MANIFEST.MF里面添
转载 2024-02-10 16:27:32
74阅读
Spring Boot运行原理 概述    本文主要写了下Spring Boot运行原理,还有一个小例子。    Spring4.x提供了基于条件来配置Bean的能力,而Spring Boot的实现也是基于这一原理的。    Spring Boot关于自动配置的源码在spring-boot-autoconfigure-1.3.0.x.jar内。如果想知道
转载 2024-03-25 09:08:55
24阅读
结论:类的双亲委托机制: 1. java 虚拟机中存在的类加载器:      根类加载器:加载jre/lib/rt.jar 或者 -Xbootclasspath 选项指定的jar 包      扩展类加载器:加载jre/lib/ext/*.jar 或者 -Djava.ext.dirs 指定目录下的jar包     &
1、可执行jar目录结构在使用spring-boot-maven-plugin插件执行mvn package命令构建可执行jar文件(Fat JAR)后用“java -jar”命令就可以直接运行应用程序。<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-
转载 2023-10-04 19:20:45
781阅读
java  应用可以打包成jar 格式, jar格式其实只是一种很普通的压缩格式,与zip格式一样,只不过是它会在压缩文件的目录结构中增加一个META-INF/ MANIFEST.MF 的元文件。      我们知道,经过编译的字节码class文件可以直接放到java虚拟机去解释执行(JIT方式), 我们通过在命令行调用“java  c
转载 2023-07-23 14:20:39
247阅读
Docker安装和使用基本概念Docker 传统的程序运行时,环境配置较多,程序的迁移和扩展工作量较大。Docker正是解决这些问题最常用的方案。 Docker给每个服务提供独立的稳定的环境,以保证程序环境的一致性(在不同机器上表现一致,避免开发机器可运行,而正式服务器出错的情况)。 在持续集成、弹性扩展方面也可提供帮助。Docker也可以在一台服务器上启动多个服务,方便地构建微服务系统。镜像(i
转载 2023-08-08 10:43:36
268阅读
DES是一个16轮的Feistel型结构密码,它的分组长度为64比特,用一个56比特的密钥来加密一个64比特的明文串,输出一个64比特的密文串。其中,使用密钥为64比特,实用56比特,另8位用作奇偶校验。加密的过程是先对64位明文分组进行初始置换,然后分左、右两部分分别经过16轮迭代,然后再进行循环移位与变换,最后进行逆变换得出密文。加密与解密使用相同的密钥,因而它属于对称密码体制。 三重DES加
转载 2023-07-15 19:54:25
49阅读
一、远程debug原理Java远程调试的原理是两个JVM之间通过debug协议进行通信,然后以达到远程调试的目的。两者之间可以通过socket进行通信。被debug的机器需要开启debug模式,debug使用的客户端可以是eclipse,总之我使用eclipse已经成功了。二、操作步骤1.服务端设置由于我们经常将程序部署到linux机器上,所以通常使用的是war、tar包或者直接使用可运行的jar
转载 2023-05-22 17:00:10
638阅读
导语在运用Spring Boot 后,我们基本上摆脱之前项目每次上线的时候把项目打成war包。当然也不排除一些奇葩的规定,必须要用war包上线,不过很多时候,我们对一些东西只是处在使用的阶段,并不会去深入的研究使用的原理是什么,这貌似也是大多数人的固定思维。或许正是如此,总会有些没有固定思维的人会去积极的探索原理,当然这话不是说我是积极的,我其实也是只原理的搬运工。今天和大家来简单的说下Sprin
spring boot jar的启动原理分析1、前言2、分模块后的结构3、MANIFEST.MF文件4、运行5、main程序的启动流程6、总结1.前言近来有空对公司的open api平台进行了些优化,然后在打出jar包的时候,突然想到以前都是对spring boot使用很熟练,但是从来都不知道spring boot打出的jar的启动原理,然后这回将jar解开了看了下,与想象中确实大不一样,以下就是
转载 2023-08-07 22:52:39
118阅读
文章目录一、概述1)Hadoop发行版本1、Apache Hadoop发行版2、DKhadoop发行版3、Cloudera发行版4、Hortonworks发行版5、华为hadoop发行版2)Hadoop1.x -》 Hadoop2.x的演变3)Hadoop2.x与Hadoop3.x区别对比二、Hadoop的发展简史三、Hadoop生态系统 一、概述Hadoop是Apache软件基金会下一个开源分
  • 1
  • 2
  • 3
  • 4
  • 5