java - launch4j生成的exe第一次启动缓慢

标签 java maven jar exe launch4j

我们使用launch4j-maven-plugin生成exe,使用的是Java 1.8。 该 jar 是使用 onejar 生成的,因为它包含 jar 作为依赖项。 然而,jar 是立即启动的,只有 exe 需要 30 秒 - 1 分钟才能启动。 如果我在完全加载后关闭应用程序并重新启动,则应用程序会立即启动。也许,因为 jar 的依赖项已经加载了?!

我尝试使用 maven-shade-plugin 生成(仅用于检查),并且启动时出现相同的问题。此外,我尝试在调试器中启动应用程序,它也会立即启动。使用 --l4j-debug-all 启动 exe 不会显示任何内容。

是否有可能加速?

        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.0</version>
            </plugin>

            <plugin>
                <artifactId>maven-resources-plugin</artifactId>
                <version>3.0.2</version>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>2.10</version>
            </plugin>

            <plugin>
                <groupId>com.jolira</groupId>
                <artifactId>onejar-maven-plugin</artifactId>
                <version>1.4.4</version>
                <executions>
                    <execution>
                        <configuration>
                            <mainClass>${mainclass}</mainClass>
                            <attachToBuild>true</attachToBuild>
                            <filename>${project.artifactId}-${project.version}-jar-with-dependencies.${project.packaging}</filename>
                        </configuration>
                        <goals>
                            <goal>one-jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <groupId>com.akathist.maven.plugins.launch4j</groupId>
                <artifactId>launch4j-maven-plugin</artifactId>
                <version>1.7.25</version>
                <executions>
                    <execution>
                        <id>l4j-clui</id>
                        <phase>package</phase>
                        <goals>
                            <goal>launch4j</goal>
                        </goals>
                        <configuration>
                            <headerType>console</headerType>
                            <jar>${project.build.directory}/${project.artifactId}-${project.version}-jar-with-dependencies.${project.packaging}</jar>
                            <outfile>${project.build.directory}/App-${project.version}.exe</outfile>
                            <classPath>
                                <mainClass>com.simontuffs.onejar.Boot</mainClass>
                                <preCp>anything</preCp>
                            </classPath>
                            <jre>
                                <minVersion>1.8.0</minVersion>
                                <initialHeapSize>1024</initialHeapSize>
                                <maxHeapSize>1024</maxHeapSize>
                            </jre>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>

最佳答案

就我而言,原因很简单:后台的实时防病毒扫描减慢了速度。

关于java - launch4j生成的exe第一次启动缓慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59786249/

相关文章:

java - 如何关闭 Windows 资源管理器?

java - 在集合中查找编辑

java - 从 Maven 文件夹结构的主/资源文件夹中选取文件时出现问题

java - 通过构造函数将上下文从主 Activity 传递到 Java 类时获取 "this field leaks a context object"

java - 在没有 Spring Boot 或 Maven/Gradle 的情况下编写 Spring Websocket 项目

java - sonar-scanner-maven 分支构建失败

java - 执行jar文件时出错

jar - WSO2 Developer Studio 帐户服务示例丢失的 jar

java - 执行复制/合并时批量删除文件

java - JPA Hibernate - 排除类上的未知实体