通过Eclipse从Java(FX)创建Windows EXE

时间:2019-01-11 20:24:04

标签: java eclipse javafx

我无法通过Eclipse创建Windows软件。使用“运行”确实可以运行该应用程序,但是我想在没有Eclipse的情况下启动它,最好是作为一个独立的Windows应用程序,只需双击即可。 尽管this提出了几种方法,但它们都需要我不具备的其他知识。

我尝试使用Launch4J,但它还需要其他知识。令我惊讶的是,创建一个简单的Windows-Java-app非常困难。

编辑 我正在使用此pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

<modelVersion>4.0.0</modelVersion>
<groupId>foo</groupId>
<artifactId>bar</artifactId>
<version>1.0.0</version>
<name>baz</name>
<description></description>

<dependencies>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>com.zenjava</groupId>
            <artifactId>javafx-maven-plugin</artifactId>
            <version>8.8.3</version>
            <configuration>
                <mainClass>application.Main</mainClass>
                <updateExistingJar>true</updateExistingJar>
                <skipCopyingDependencies>true</skipCopyingDependencies>
                <useLibFolderContentForManifestClasspath>true</useLibFolderContentForManifestClasspath>
            </configuration>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>build-jar</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.5.1</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
    </plugins>
</build>
</project>

但是Eclipse给出了以下错误消息:

Failed to execute goal com.zenjava:javafx-maven-plugin:8.8.3:build-jar

目标是

clean compile package -e

已安装Maven,尝试以最小的附件运行它。

3 个答案:

答案 0 :(得分:2)

首先,您无法创建“ Windows-Java-App”。 Java应用程序在JVM(Java虚拟机)上运行,这意味着您不会获取exe文件。您需要的是一个JAR文件。有关如何在Eclipse中创建JAR文件的信息,请参见此处: https://stackoverflow.com/a/21110972/4440179

对于JavaFX,请遵循以下指南:https://wiki.eclipse.org/Efxclipse/Tutorials/Tutorial1

答案 1 :(得分:2)

Launch4j我知道它可以通过Java制作exe包装程序,并且它是跨平台的。

在这里检查: http://launch4j.sourceforge.net/

答案 2 :(得分:1)

我建议创建一个Maven项目,以帮助您构建可执行的JavaFX Jar。

首先,您需要确保Eclipse具有Maven插件Help -> About Eclipse IDE,并确保已安装Eclipse.org - m2e

然后创建一个Maven项目New -> Other.. -> Maven Project,填写基本内容以创建该项目,然后将源文件放在该新项目的src/main/java下。

此新项目的根目录中应该有一个pom.xml文件;该文件有助于管理您的项目依赖关系和构建过程。 为了易于构建可执行文件,请将以下插件添加到pom.xml文件中以修改构建过程。

然后,您可以右键单击pom.xml,然后Run As -> Maven Build ...,然后将clean compile package -e作为目标,刷新MyProject/target目录,然后在MyProject/target/javafx/app/jarname.jar下找到Jar

此外,如果愿意,您可以使用maunch4j maven插件进行研究,以使maven为您构建本机可执行文件,否则Jar会要求用户安装Java,但它仍然是可双击的JavaFX Jar。


<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

<modelVersion>4.0.0</modelVersion>
<groupId>foo</groupId>
<artifactId>bar</artifactId>
<version>1.0.0</version>
<name>baz</name>
<description></description>

<dependencies>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>com.zenjava</groupId>
            <artifactId>javafx-maven-plugin</artifactId>
            <version>8.8.3</version>
            <configuration>
                <mainClass>path.to.my.Main</mainClass>
                <updateExistingJar>true</updateExistingJar>
                <skipCopyingDependencies>true</skipCopyingDependencies>
                <useLibFolderContentForManifestClasspath>true</useLibFolderContentForManifestClasspath>
            </configuration>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>build-jar</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.5.1</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
    </plugins>
</build>
</project>