Simple Java 11 JavaFXprogram, Ошибка при запуске из файла JAR (Windows) - PullRequest
0 голосов
/ 10 декабря 2018

У меня есть тестовая программа JavaFX, которая отлично работает в Eclipse.- Мне пришлось добавить файл информации модуля (module-info.java), содержащий следующее:

module moduletest {
    requires javafx.controls;
    exports com.javafx.test.MenuTest;
}

Класс Java:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.VBox;
import javafx.scene.paint.Color;
import javafx.scene.shape.Circle;
import javafx.stage.Stage;

public class MenuTest extends Application {

@Override
public void start(Stage primaryStage) {

    Scene scene = new Scene(new VBox(), 300, 250);

    Circle circle1 = new Circle(-20,0,200);        
    circle1.setFill(Color.CADETBLUE);
    ((VBox) scene.getRoot()).getChildren().addAll(circle1);

    primaryStage.setScene(scene);
    primaryStage.show();        
}

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

Когда я запускаю его как экспортированный JARфайл, используя следующую команду

java -jar TonyJavaFX.jar -classpath .;./lib/javafx.controls.jar

, я получаю следующую ошибку:

Ошибка: не удалось найти или загрузить основной класс com.javafx.test.MenuTest.MenuTest Причина:: java.lang.NoClassDefFoundError: javafx / application / Application

Примечание. У меня есть папка lib прямо в папке, из которой я запускаю jar, в которой содержатся все файлы jar JavaFX.

1 Ответ

0 голосов
/ 10 декабря 2018

Необходимо убедиться, что модули javax.controls и javafx-graphics.jar присутствуют в вашем модульном пути вместо classpath .

--module-path ./lib/javafx.controls.jar:./lib/javafx.graphics.jar

Примечание : Это не потребует добавления модуля javafx.graphics в объявлении вашего модуля, так как это требуется для модуля javafx.controls.Помогает только наличие модуля в модульном пути.

Важно : В идеале вы должны добавить полную папку lib в modulepath.Подробнее здесь - https://openjfx.io/openjfx-docs/#install-javafx

...