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



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

我尝试使用 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>

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

最新更新