如何使用Maven + JavaFX创建可运行的JAR文件

时间:2019-05-30 18:16:20

标签: java eclipse maven javafx

我将在Eclipse IDE中创建一个可运行的JAR文件。我所有的依赖项都来自Maven。在Eclipse中,我正在为桌面创建JavaFX GUI应用程序。

问题是当我创建可运行的JAR文件时。我收到此错误。

enter image description here

错误非常明显。

  

瓶子出口出现问题。查看其他详细信息   信息。从给定的启动中找不到主要方法   配置。

但是主要方法是什么?这里是public static void main(String[] args)方法吗?

我应该怎么解决?

package se.danielmartensson.start;

import java.util.Optional;

import javafx.application.Application;
import javafx.application.Platform;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.Alert;
import javafx.scene.control.Alert.AlertType;
import javafx.scene.control.ButtonType;
import javafx.stage.Stage;
import se.danielmartensson.concurrency.Measureing;

public class Main extends Application{

    /*
     * Start the start(Stage front)
     */
    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage front) throws Exception {
        front.setOnCloseRequest(e->{
            e.consume();
            askForClosing();
        });
        Parent root = FXMLLoader.load(getClass().getResource("/se/danielmartensson/fxml/front.fxml"));
        Scene scene = new Scene(root);
        front.setScene(scene);
        front.setTitle("JUBSPlotter");      
        front.show();
    }

    private void askForClosing() {
        Alert question = new Alert(AlertType.CONFIRMATION);
        question.setTitle("Closing");
        question.setHeaderText("Do you want to close?");
        question.setResizable(false);
        question.setContentText("Press OK to close.");
        Optional<ButtonType> answer = question.showAndWait();
        if(answer.get() == ButtonType.OK) {
            Measureing.active = false;
            Platform.exit();
        }

    }

}

1 个答案:

答案 0 :(得分:1)

您必须使用以下maven插件来创建可运行的jar文件。

<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <configuration>
                    <archive>
                        <manifest>
                            <mainClass>
                                com.ddlab.rnd.App
                            </mainClass>
                        </manifest>
                    </archive>
                </configuration>
            </plugin>

这是一个非常简单的项目,您想在其中了解如何创建要运行的可执行jar文件。 要对如何创建可运行/可执行的jar文件有个好主意,请检查此github链接。 https://github.com/debjava/runnableJar 如果您还有其他库要用作应用程序的一部分。您必须创建胖子jar文件。要创建一个胖jar文件,您必须使用Maven Shade插件。在下面找到Maven Shade插件的链接。

https://maven.apache.org/plugins/maven-shade-plugin/