Как сделать программу работоспособной без перемещения файлов библиотеки Java в систему - PullRequest
0 голосов
/ 07 июля 2019

Мне интересно, почему мои программы на Swing могут запускаться на каждой машине, на которой установлена ​​Java, а программы на JavaFX нет. Если я хочу запустить свою программу в JavaFX, мне нужно скопировать некоторые файлы библиотеки JavaFX в папку JDK, например здесь . Проблема в том, что я не хочу заставлять людей перемещать некоторые файлы в любую папку! Я хочу, чтобы они могли запустить программу, просто щелкнув по ней и ничего больше! Я хочу сделать это просто. Другие программы на Java не заставляют меня делать это, так как я могу сделать свою программу такой же, как другие? Что я должен делать? Вот несколько примеров кода.

Main.java

package fxTutorial;

public class Main {
    public static void main(String[] args){
        Demo.main(args);
    }
}

Demo.java

package fxTutorial;

import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.Event;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class Demo extends Application implements EventHandler {

    Button button = new Button();
    public static void main(String[] args){
        launch(args);
    }

    @Override
    public void start(Stage primaryStage) throws Exception {
        primaryStage.setTitle("Application");
        button.setText("Button");
        button.setOnAction(this);

        StackPane stackPane = new StackPane();
        stackPane.getChildren().add(button);
        Scene scene = new Scene(stackPane,400,500);
        primaryStage.setScene(scene);
        primaryStage.show();

    }


    @Override
    public void handle(Event event) {
        if(event.getSource()==button)
            //Do something, like background changing - Whatever
    }
}

module-info.java

module Demo {
    requires javafx.fxml;
    requires javafx.controls;

    opens fxTutorial;
}
...