简单的Java 11 JavafxProgram,从Jar File(Windows)运行时出错

 2023-02-16    341  

问题描述

我有一个测试JAVAFX程序,在Eclipse中运行良好. – 我必须添加一个包含以下内容的模块Info文件(Module-info.java):

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

Java类:

简单的Java 11 JavafxProgram,从Jar File(Windows)运行时出错

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

注意:我直接在我正在运行的jar的文件夹下方有一个lib文件夹,其中包含所有javafx jar文件.

推荐答案

您需要确保模块javax.controls和javafx-graphics.jar存在于您的 modulepath上,而不是classpath ..

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

注释:这不需要在模块声明中添加javafx.graphics模块,因为javafx.controls模块是固定要求的.仅在模块中的模块的存在就可以帮助它.

重要的 :理想情况下,您应该将完整的LIB文件夹添加到模块上.更多信息 – https://openjfx.io/openjfx-io/openjfx-docs/a>

以上所述是小编给大家介绍的简单的Java 11 JavafxProgram,从Jar File(Windows)运行时出错,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!

原文链接:https://77isp.com/post/33913.html

=========================================

https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。