# Java 获取 JVM 所有 Jar 包
在 Java 开发中,JAR(Java Archive)文件通常用于打包多个 Java 类文件以及相关的资源,例如图片、声音等。每个 Java 应用程序都会在某种程度上依赖于 JAR 文件,包括 Java 标准库本身。了解如何获取 JVM 中所有 JAR 包的信息,可以帮助我们更好地管理项目依赖、进行版本控制以及优化性能。本文将介绍获取 JVM 所有            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-08-27 08:48:35
                            
                                78阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            文章目录Maven 笔记声明:Maven简介Maven 是什么Maven的作用下载与安装Maven下载Maven安装Maven 环境变量配置Maven 基础概念仓库坐标本地仓库配置镜像仓库配置全局setting 与 用户setting 区别第一个Maven项目(手工制作)Maven 工程目录结构:Maven项目构建命令使用插件自动创建工程目录Java工程与Web工程的区别在IDEA里面使用Mav            
                
         
            
            
            
            在使用 jar 执行 java 代码时,有一个需求是从 jar 包所在目录的同级目录下读取配置文件的需求,从网上找了很多方法感觉都挺复杂的,在这里总结一下.以classpath 开头的 URL 表示该文件为jar包内文件的路径. 如:classpath://config/app.config表示jar包根路径config文件夹下的app.config文件 以file开头的URL表示该文件为jar            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-09-01 12:13:15
                            
                                165阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            1 类加载顺序Java 的类加载过程可以分为 5 个阶段:载入、验证、准备、解析和初始化。这 5 个阶段一般是顺序发生的,但在动态绑定的情况下,解析阶段发生在初始化阶段之后。1)Loading(载入)JVM 在该阶段的主要目的是将字节码从不同的数据源(可能是 class 文件、也可能是 jar 包,甚至网络)转化为二进制字节流加载到内存中,并生成一个代表该类的 java.lang.Cla            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-11-02 06:58:42
                            
                                232阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            前言       在前面我们介绍了JVM的核心三部分:类加载器、字节码解释器、运行时数据区。       这一节我们来介绍下类加载器。一、类加载过程多个java文件经过编译打包生成可运行jar包,最终由java命令运行某个主类的main函数启动程序,这里首先需要通过类加载器把主类            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-09-08 21:03:35
                            
                                520阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            JVM的运行机制JVM是用于运行Java字节码的虚拟机,Java源文件再通过编译器之后被编译成相应的.class文件,.class文件又被JVM中的编译器编译成机器码在不同的操作系统上运行。每种操作系统的解释器都是不一样的,但基于解释器的虚拟机是相同的,这也是Java能够跨平台的主要原因。Java程序的具体运行过程如下: 1.Java源文件被编译器编译成字节码文件。 2.JVM把字节码文件编译成相            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-11-24 00:26:55
                            
                                47阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            # Java获取jar包中所有类文件
在Java开发过程中,我们经常需要获取一个jar包中所有的类文件。这不仅可以帮助我们了解jar包的结构,还可以在进行代码分析和调试时提供便利。本文将介绍如何使用Java代码来实现这一功能。
## 1. 读取jar包
首先,我们需要读取jar包中的所有文件。我们可以使用`java.util.jar`包中的`JarFile`类来实现这一功能。以下是一个示例代            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-07-23 05:21:36
                            
                                163阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            文章目录一、JVM的运行机制二、类加载机制加载(Load)链接(Link)初始化(Initialize)三、双亲委派模型四、总结 提示:以下是本篇文章正文内容,Java系列学习将会持续更新  一、JVM的运行机制我们编写的程序 = 数据 + 指令; 源码(source code)一般存储在以*.java 结尾的文件中,称为java源文件。Java程序的具体运行过程如下:在编译阶段,Java源文件            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-10-02 23:58:06
                            
                                138阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            Java 运行环境为了优化系统,提高程序的执行速度,在 JRE 运行的开始会将 Java 运行所需要的基本类采用预先加载( pre-loading )的方法全部加载要内存当中,因为这些单元在 Java 程序运行的过程当中经常要使用的,主要包括 JRE 的 rt.jar             
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-09-24 22:09:49
                            
                                113阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            1,一个类被加载进jvm中要经历哪几个过程加载:通过io的方式将class文件读入到我们的jvm中。校验:通过校验字节码文件头4位16进是否是以cafe babe开头。 目的是为了检查此文件是否java编写。准备:将类中的静态属性赋初始值。 解析:将符号引用转换成直接引用。(在刚开始时,假如一个类引用了另一个类,这时jvm并不不知道这人引用的地址,会先用一个唯一的符号代替,这时就叫符号引            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-10-15 11:16:22
                            
                                320阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            当我们运行一个Java的程序的时候,首先需要通过类加载器把主类加载到JVM中。 通过Java命令执行代码的大体流程: 一个流程的操作如下图 这里主要看类加载器,Java里有如下加载器 1.引导类加载器:负责加载支撑JVM运行的位于JRE的lib目录下的核心类库,比如rt.jar,charsets.jar等 2.扩展类加载器:负责加载支撑JVM运行的位于JRE的lib目录下的ext扩展目录中的JAR            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-11-23 12:56:22
                            
                                167阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            1、类加载过程 多个java文件经过编译打包生成可运行jar包,最终由java命令运行某个主类的main函数启动程序,这里首先需要通过类加载器把主类加载到JVM。 主类在运行过程中如果使用到其它类,会逐步加载这些类。 注意,jar包里的类不是一次性全部加载的,是使用到时才加载。类加载到使用整个过程有如下几步: 加载 >> 验证 >> 准备 >> 解析 >&            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-10 10:26:47
                            
                                16阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            编程语言有两种:1、编译型语言        将代码一次性编译成计算机可识别的二进制文件,语言有C和C++2、解释型语言        通过解释器,一行行读取我们编写的代码转换成二进制数据后执行,JVM就是解释器,语言有java和kotlin lei类加载器:1.启动类加载器(Bootstrap ClassLoader            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-18 17:05:22
                            
                                251阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            前言:  
   最近在看JVM相关资料,这里记录下学习笔记,希望自己能坚持学完,打牢基础。 
    
   一、类加载过程  加载、验证、准备、解析、初始化、使用和卸载七个阶段。 
   加载、验证、准备、解析和初始化五个阶段。 
   
     
   二、Java类运行过程  
   我们编写完的程序都是以java结尾的文件,编译写完的代码都会生成一些后缀为class的            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-17 16:56:29
                            
                                178阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            /opt/java/jdk1.8.0_131/bin/java #运行模式-server 														#堆区内存可被分配            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-05-26 01:00:28
                            
                                100阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            反射(四)获取类结构信息一、第一组方法(java.lang.Class类)二、第二组方法(java.lang.Class类)三、第三组方法(java.lang.reflect.Method类)四、第四组方法(java.lang.reflect.Constructor类) 一、第一组方法(java.lang.Class类)得到Class对象getName:获取全类名getSimpleName:获取            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-18 14:04:29
                            
                                85阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            add jars = 增加项目内libs文件夹下的jar包。包的路径是相对路径。路径从相应的项目名再到libs文件夹 add external jars=增加项目外部的jar包。包的路径是绝对路径add library = 增加一个库add class folder = 增加一个类文件夹add jar是表示从你的工程里添加JAR,前提是你把jar已经放到自己的工程目录里。add external            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-07-08 15:36:02
                            
                                29阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            1.类加载过程项目里面的多个.java文件经过编译器打包成可运行的jar文件,最终由java命令运行主类的main函数启动整个项目,但是首先是需要类加载器(自己定加载器、或者应用程序加载器或者扩展类加载器或者启动类加载器)把主类加载到JVM。主类在运行过程中如果使用到了其他类,会逐步加载这些使用到的类,而不是一下全部加载到JM里面。下面是类加载到使用的整个流程如下所示:编译器编译.java到磁盘上            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-09-06 16:34:09
                            
                                282阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            几个开发人员会用到的标准参数-client :设置JVM使用client模式,特点启动较快(神机不明显(I5/8G/SSD))-server :设置JVM使用server模式。64位JDK默认启动该模式-agentlib:libname[=options] :用于加载本地的lib-agentlib:hprof :用于获取JVM的运行情况-agentpath:pathnamep[=options]            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-21 14:56:37
                            
                                239阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            一.虚拟机启动: 1)命令启动 java -jar ***.jar 2)根据当前路径和系统版本,查找jvm.cfg配置 3)根据配置寻找jvm.dll并初始化虚拟机 4)调用JNIEnv接口查找Class文件JNIEnv 是与线程有关的量,不同线程的JNIEnv彼此独立。
有些认为JNIEnv是Java调用其他语言(通常是C/C++)的环境。5)Bootstrap ClassLoader 加载Cl            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-24 10:28:10
                            
                                159阅读