Извлечение исполняемого JAR-файла Spring Boot: методы и примеры кода

В этой статье блога мы рассмотрим различные методы извлечения исполняемого JAR-файла Spring Boot. Мы предоставим примеры кода с использованием популярных инструментов сборки, таких как Maven и Gradle. К концу этой статьи вы будете хорошо понимать, как извлечь содержимое исполняемого JAR-файла Spring Boot.

Метод 1: использование инструмента командной строки Jar
Пример кода:

$ jar xf myapp.jar

Метод 2: использование API Java Archive (JAR)
Пример кода:

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.StandardCopyOption;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;
public class JarExtractor {
    public static void main(String[] args) throws IOException {
        String jarFilePath = "myapp.jar";
        String destinationDirectory = "extracted";
        try (JarFile jarFile = new JarFile(jarFilePath)) {
            jarFile.stream()
                    .filter(entry -> !entry.isDirectory())
                    .forEach(entry -> {
                        try {
                            Path entryPath = Path.of(destinationDirectory, entry.getName());
                            Files.createDirectories(entryPath.getParent());
                            Files.copy(jarFile.getInputStream(entry), entryPath, StandardCopyOption.REPLACE_EXISTING);
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                    });
        }
    }
}

Метод 3: использование Maven
Добавьте следующую конфигурацию в файл pom.xmlвашего Maven:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <version>3.1.2</version>
            <executions>
                <execution>
                    <id>unpack-dependencies</id>
                    <phase>package</phase>
                    <goals>
                        <goal>unpack-dependencies</goal>
                    </goals>
                    <configuration>
                        <includeArtifactIds>myapp</includeArtifactIds>
                        <outputDirectory>${project.build.directory}/extracted</outputDirectory>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

Выполните следующую команду, чтобы извлечь файл JAR:

$ mvn package

Извлеченные файлы будут расположены в каталоге target/extracted.

Метод 4: использование Gradle
Добавьте следующую конфигурацию в файл build.gradleвашего Gradle:

task extractJar(type: Copy) {
    from(zipTree('myapp.jar'))
    into('extracted')
}

Чтобы извлечь файл JAR, выполните следующую команду:

$ ./gradlew extractJar

Извлеченные файлы будут расположены в каталоге extracted.

В этой статье мы рассмотрели различные методы извлечения исполняемого JAR-файла Spring Boot. Мы рассмотрели извлечение вручную с помощью инструмента командной строки Jar, программное извлечение с помощью API Java Archive (JAR), извлечение с помощью Maven и извлечение с помощью Gradle. Вы можете выбрать метод, который соответствует вашим требованиям, и настроить инструмент для извлечения содержимого исполняемого JAR-файла Spring Boot.