Launch4J plugin crea un archivo EXE (junto con el JAR), pero EXE no puede encontrar la clase principal de arranque de Primavera

Prateek Narendra:

Escribí un plugin para crear un archivo EXE y JAR para mi proyecto con la ayuda de Launch4J plugin. Sin embargo, en la ejecución del archivo EXE, me sale el error -

Error: Could not find or load main class

Sin embargo, corro el JAR Dando java -jar app.jar, que funciona perfectamente.

Esta es mi sección plug-in

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <configuration>
                    <archive>
                        <manifest>
                            <mainClass>com.mycompany.tool.orchestrator.command.CommandHandler</mainClass>
                        </manifest>
                    </archive>
                </configuration>
            </plugin>
            <plugin>
                <groupId>com.akathist.maven.plugins.launch4j</groupId>
                <artifactId>launch4j-maven-plugin</artifactId>
                <version>1.7.16</version>
                <executions>
                    <execution>
                        <id>l4j-clui</id>
                        <phase>package</phase>
                        <goals>
                            <goal>launch4j</goal>
                        </goals>
                        <configuration>
                            <headerType>console</headerType>
                            <outfile>target/apidast.exe</outfile>
                            <jar>${project.build.directory}/${artifactId}-${version}.jar</jar>
                            <errTitle>encc</errTitle>
                            <classPath>
                                <mainClass>com.mycompany.tool.orchestrator.command.CommandHandler</mainClass>
                                <!--Not sure what the next 2 lines are for -->
                                <addDependencies>true</addDependencies>
                                <preCp>anything</preCp>
                            </classPath>
                            <jre>
                                <minVersion>1.8.0_212</minVersion>
                                <!--Not sure what these opts are for -->
                                <opts>
                                    <opt>-Djava.endorsed.dirs=./endorsed</opt>
                                </opts>
                            </jre>
                            <versionInfo>
                                <fileVersion>0.0.1.0</fileVersion>
                                <txtFileVersion>0.0.1.0</txtFileVersion>
                                <fileDescription>${project.name}</fileDescription>
                                <copyright>My Company.</copyright>
                                <productVersion>0.0.1.0</productVersion>
                                <txtProductVersion>${version}</txtProductVersion>
                                <productName>${project.name}</productName>
                                <originalFilename>apidast.exe</originalFilename>
                                <!-- internalName is mandatory -->
                                <internalName>apidast</internalName>
                            </versionInfo>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

El EXE está presente en mi carpeta de destino. Pero no puedo ejecutarlo, ya que dice que no se encuentra la clase principal (a pesar de añadir que en los detalles de plugins)

Sambit:

Trate de tun la acumulación experta usando el siguiente comando para cualquier proyecto de Maven.

MVN MVN paquete limpia o instalación limpia

Con respecto a Launch4j, tiene que ejecutar el siguiente comando.

mvn paquete limpio

Para más detalles sobre Launch4j, se puede comprobar el siguiente enlace. https://github.com/lukaszlenart/launch4j-maven-plugin/blob/master/src/main/resources/README.adoc

Pero en este proyecto, veo que está utilizando arranque primavera. Si mi interpretación es correcta, que desea crear un archivo exe de arranque primavera. Si este es el caso.

Se puede tratar de utilizar el siguiente cambio de launch4j y verificación.

<classPath>                    
   <mainClass>org.springframework.boot.loader.JarLauncher</mainClass>                                
   <addDependencies>true</addDependencies>
   <preCp>anything</preCp>
</classPath>

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=238888&siteId=1
Recomendado
Clasificación