参考文献

SpringBoot Jar目录结构

  • BOOT-INF/classes目录存放应用编译后的class文件
  • BOOT-INF/lib目录存放应用依赖的JAR
  • META-INF/目录存放应用相关的元信息,如MANIFEST.MF文件
  • org/目录存放SpringBoot相关的class文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
.
├── BOOT-INF
│   ├── classes
│   │   ├── application.yaml
│   │   └── cn
│   │   └── holelin
│   │   ├── NiiHandlerApplication.class
│   ├── classpath.idx
│   ├── layers.idx
│   └── lib
│   ├── spring-aop-5.3.31.jar
│   ├── spring-beans-5.3.31.jar
│   ├── spring-boot-2.7.18.jar
│   ├── spring-boot-autoconfigure-2.7.18.jar
│   ├── spring-boot-jarmode-layertools-2.7.18.jar
│   ├── spring-context-5.3.31.jar
│   ├── spring-core-5.3.31.jar
│   ├── spring-data-commons-2.7.18.jar
│   ├── spring-data-mongodb-3.4.18.jar
│   ├── spring-expression-5.3.31.jar
│   ├── spring-jcl-5.3.31.jar
│   ├── spring-tx-5.3.31.jar
│   ├── spring-web-5.3.31.jar
│   ├── spring-webmvc-5.3.31.jar
│   ├── tomcat-embed-core-9.0.83.jar
│   ├── tomcat-embed-el-9.0.83.jar
│   ├── tomcat-embed-websocket-9.0.83.jar
│   └── ...
├── META-INF
│   ├── MANIFEST.MF
│   ├── maven
│   │   └── org.example
│   │   └── nii_handle
│   │   ├── pom.properties
│   │   └── pom.xml
│   └── spring-configuration-metadata.json
└── org
└── springframework
└── boot
└── loader
├── ClassPathIndexFile.class
├── ExecutableArchiveLauncher.class
├── JarLauncher.class
├── LaunchedURLClassLoader$DefinePackageCallType.class
├── LaunchedURLClassLoader$UseFastConnectionExceptionsEnumeration.class
├── LaunchedURLClassLoader.class
├── Launcher.class
├── MainMethodRunner.class
├── PropertiesLauncher$1.class
├── PropertiesLauncher$ArchiveEntryFilter.class
├── PropertiesLauncher$ClassPathArchives.class
├── PropertiesLauncher$PrefixMatchingArchiveFilter.class
├── PropertiesLauncher.class
├── WarLauncher.class
├── archive
│   ├── Archive$Entry.class
│   ├── Archive$EntryFilter.class
│   ├── Archive.class
│   ├── ExplodedArchive$AbstractIterator.class
│   ├── ExplodedArchive$ArchiveIterator.class
│   ├── ExplodedArchive$EntryIterator.class
│   ├── ExplodedArchive$FileEntry.class
│   ├── ExplodedArchive$SimpleJarFileArchive.class
│   ├── ExplodedArchive.class
│   ├── JarFileArchive$AbstractIterator.class
│   ├── JarFileArchive$EntryIterator.class
│   ├── JarFileArchive$JarFileEntry.class
│   ├── JarFileArchive$NestedArchiveIterator.class
│   └── JarFileArchive.class
├── data
│   ├── RandomAccessData.class
│   ├── RandomAccessDataFile$1.class
│   ├── RandomAccessDataFile$DataInputStream.class
│   ├── RandomAccessDataFile$FileAccess.class
│   └── RandomAccessDataFile.class
├── jar
│   ├── AbstractJarFile$JarFileType.class
│   ├── AbstractJarFile.class
│   ├── AsciiBytes.class
│   ├── Bytes.class
│   ├── CentralDirectoryEndRecord$1.class
│   ├── CentralDirectoryEndRecord$Zip64End.class
│   ├── CentralDirectoryEndRecord$Zip64Locator.class
│   ├── CentralDirectoryEndRecord.class
│   ├── CentralDirectoryFileHeader.class
│   ├── CentralDirectoryParser.class
│   ├── CentralDirectoryVisitor.class
│   ├── FileHeader.class
│   ├── Handler.class
│   ├── JarEntry.class
│   ├── JarEntryCertification.class
│   ├── JarEntryFilter.class
│   ├── JarFile$1.class
│   ├── JarFile$JarEntryEnumeration.class
│   ├── JarFile.class
│   ├── JarFileEntries$1.class
│   ├── JarFileEntries$EntryIterator.class
│   ├── JarFileEntries$Offsets.class
│   ├── JarFileEntries$Zip64Offsets.class
│   ├── JarFileEntries$ZipOffsets.class
│   ├── JarFileEntries.class
│   ├── JarFileWrapper.class
│   ├── JarURLConnection$1.class
│   ├── JarURLConnection$JarEntryName.class
│   ├── JarURLConnection.class
│   ├── StringSequence.class
│   └── ZipInflaterInputStream.class
├── jarmode
│   ├── JarMode.class
│   ├── JarModeLauncher.class
│   └── TestJarMode.class
└── util
└── SystemPropertyUtils.class