簡體   English   中英

如何制作具有多個類的.jar文件?

[英]How to make a .jar file with multiple classes?

假設我已經創建了多個類,並希望將它們合並到一個可移植的.jar文件中。 現在,當我運行該.jar文件時,我的項目的登錄面板類文件應首先打開。 為了安全起見,我希望將來無法將.jar文件提取出來。

您可以使用Maven打包類來創建具有多個類的可執行jar。 然后使用MAVEN SHADE PLUGIN設置用作應用程序入口點的主類。

在此處閱讀有關Maven陰影插件的更多信息:[ https://maven.apache.org/plugins/maven-shade-plugin/examples/executable-jar.html] [1 ]

對於第一個問題:您可以使用maven-shade-plugin來構建可執行jar。 只需使您的登錄面板類包含您的main方法即可。 maven-shade-plugin會將所有依賴項和類文件放在一個jar中並進行編譯。

您可以通過“ mvn clean package”來構建項目。一旦構建,jar將在target /

專家:目標

<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,您需要將所有類放在單個目錄中。 然后添加已寫有“ Main-Class:className”的manifest.txt文件,其中類名是入口點(在您的情況下為登錄面板類)。 然后運行以下命令jar -cvfm newJar.jar manifest.txt * .class它將生成newJar.jar

並使用java -jar newJar.jar命令運行jar。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM