如何制作一个包含多个 类 的 .jar 文件?
How to make a .jar file with multiple classes?
假设我创建了多个 classes 并希望将它们合并到一个应该可移植的 .jar 文件中。现在,当我 运行 那个 .jar 文件时,我的项目的登录面板 class 文件应该首先打开。
为了安全起见,我希望 .jar 文件以后不能被其他人提取。
您可以使用 Maven 创建包含多个 classes 的可执行 jar 来打包您的 classes。然后使用 MAVEN SHADE PLUGIN 设置用作应用程序入口点的主要class。
在此处阅读有关 maven shade 插件的更多信息:[https://maven.apache.org/plugins/maven-shade-plugin/examples/executable-jar.html][1]
第一个问题:
您可以使用 maven-shade-plugin 构建可执行 jar。只需让您的登录面板 class 包含您的主要方法。
maven-shade-plugin 会将所有依赖项和 class 文件放在一个 jar 中并编译它们。
您可以通过 "mvn clean package" 构建项目
构建后,您的 jar 将在 target/
中可用
maven:目标
<build>
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>`enter code here`
<version>2.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>your.main.class.file</mainClass>
</transformer>
<transformer
implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/spring.handlers</resource>
</transformer>
<transformer
implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/spring.schemas</resource>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
对于你的第二个问题:
始终可以提取 jar 文件。你无法阻止它。
为了创建可执行 jar,您需要将所有 classes 放在一个目录中。然后添加写有 'Main-Class: className' 的 manifest.txt 文件,其中 class 名称是入口点(在您的情况下是登录面板 class)。然后 运行 以下命令
jar -cvfm newJar.jar manifest.txt *.class
它将生成 newJar.jar
并使用 java -jar newJar.jar 命令到 运行 罐子。
假设我创建了多个 classes 并希望将它们合并到一个应该可移植的 .jar 文件中。现在,当我 运行 那个 .jar 文件时,我的项目的登录面板 class 文件应该首先打开。 为了安全起见,我希望 .jar 文件以后不能被其他人提取。
您可以使用 Maven 创建包含多个 classes 的可执行 jar 来打包您的 classes。然后使用 MAVEN SHADE PLUGIN 设置用作应用程序入口点的主要class。
在此处阅读有关 maven shade 插件的更多信息:[https://maven.apache.org/plugins/maven-shade-plugin/examples/executable-jar.html][1]
第一个问题: 您可以使用 maven-shade-plugin 构建可执行 jar。只需让您的登录面板 class 包含您的主要方法。 maven-shade-plugin 会将所有依赖项和 class 文件放在一个 jar 中并编译它们。
您可以通过 "mvn clean package" 构建项目 构建后,您的 jar 将在 target/
中可用maven:目标
<build>
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>`enter code here`
<version>2.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>your.main.class.file</mainClass>
</transformer>
<transformer
implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/spring.handlers</resource>
</transformer>
<transformer
implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/spring.schemas</resource>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
对于你的第二个问题: 始终可以提取 jar 文件。你无法阻止它。
为了创建可执行 jar,您需要将所有 classes 放在一个目录中。然后添加写有 'Main-Class: className' 的 manifest.txt 文件,其中 class 名称是入口点(在您的情况下是登录面板 class)。然后 运行 以下命令 jar -cvfm newJar.jar manifest.txt *.class 它将生成 newJar.jar
并使用 java -jar newJar.jar 命令到 运行 罐子。