launch4j 生成的 exe 第一次启动缓慢
launch4j-generated exe starts slowly at first time
我们使用launch4j-maven-plugin生成exe,使用的是Java1.8。
jar 是用 onejar 生成的,因为它包含 jar 作为依赖项。
但是 jar 会立即启动,只有 exe 需要 30s - 1m 才能启动。
如果我在完全加载后关闭应用程序并重新启动,那么应用程序会立即启动。也许,因为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>
就我而言,原因很简单:后台的 Live-Antivirus-Scan 减慢了速度。
我们使用launch4j-maven-plugin生成exe,使用的是Java1.8。 jar 是用 onejar 生成的,因为它包含 jar 作为依赖项。 但是 jar 会立即启动,只有 exe 需要 30s - 1m 才能启动。 如果我在完全加载后关闭应用程序并重新启动,那么应用程序会立即启动。也许,因为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>
就我而言,原因很简单:后台的 Live-Antivirus-Scan 减慢了速度。