Мне интересно, почему мои программы на 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;
}