Skip to content

Instantly share code, notes, and snippets.

@JaaumG
Last active August 23, 2023 16:53
Show Gist options
  • Save JaaumG/1d9e342d2a0827e220df8a1f2aedec52 to your computer and use it in GitHub Desktop.
Save JaaumG/1d9e342d2a0827e220df8a1f2aedec52 to your computer and use it in GitHub Desktop.
JavaFX para executavel (.exe)

JavaFX para Executável

  1. Inicie o projeto no intellij com JavaFx.
  2. Ao escolher a versão do SDK opte pelas LTS.
  3. no arquivo pom.xml adicione essas linhas de código:
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.11.0</version>
                <configuration>
                    <source>20</source>
                    <target>20</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.openjfx</groupId>
                <artifactId>javafx-maven-plugin</artifactId>
                <version>0.0.8</version>
                <executions>
                    <execution>
                        <id>default-cli</id>
                        <configuration>
                            <mainClass>
                                (PACKAGE)/(MAIN)
                            </mainClass>
                            <launcher>app</launcher>
                            <jlinkZipName>app</jlinkZipName>
                            <jlinkImageName>app</jlinkImageName>
                            <noManPages>true</noManPages>
                            <stripDebug>true</stripDebug>
                            <noHeaderFiles>true</noHeaderFiles>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>3.5.0</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <shadedArtifactAttached>true</shadedArtifactAttached>
                            <transformers>
                                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                    <mainClass>(MAIN)</mainClass>
                                </transformer>
                                <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
                            </transformers>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <version>3.3.1</version>
                <configuration>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>
  1. Crie uma classe para ser a Main com o método main() que chame o método main da classe que extende Application, ficando assim:
public class Main {

   public static void main(String[] args) {
       App.main(args);
   }

}
  1. Rode o código: mvn clean package

  2. Baixe o Launch4J

  3. Configue sua aplicação para ser executavel do jeito que entender.

  4. Na aba JRE, altere o caminho no textinput JRE paths: e coloque por exemplo 'JRE'. image Ao compilar o arquivo .jar em .exe ele reportará um erro, alegando que não foi possivel encontrar o Java Runtime Environment.

  5. Crie uma pasta localizada no mesmo local em que o .exe esteja, !IMPORTANTE, o nome desta pasta é obrigatória que seja a mesma na qual você colocou no JRE paths no Launch4J.

  6. Dentro desta pasta, coloque o JDK da sua versão java dentro desta pasta (os arquivos de dentro da JDK). image

  7. Com os arquivos do JDK dentro da pasta especificada no JRE paths o executavel funcionará corretamente.

Referências:

Compilar para .jar executavel

Converter .jar para .exe

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment