开发者社区 问答 正文

为什么我的Java代码不能与JavaFX一起使用?

我试图在我的Eclipse(最新版本)上正确安装JavaFX(最新版本)。我认为问题与“应用程序”和“启动”方法有关。但是我不确定我的代码是否错误或JavaFX是否正确安装。

通常的Java程序都可以工作。我在工作区中安装了用户库“ JavaFX 11”,并且程序承认存在JavaFX11。我可以导入JavaFX-stuff,但是运行程序时程序会死。我复制了一个朋友的代码,并在他的电脑上工作。

import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.Label; import javafx.stage.Stage;

public class test1 extends Application { public void start(Stage primaryStage) { Label lab = new Label("Hello World"); Scene scene = new Scene(lab, 300, 100); primaryStage.setScene(scene); primaryStage.setTitle("Hello World"); primaryStage.show(); }

public static void main(String[] args) { launch(args); } } 什么都没有发生,但是我有很多例外。这些是我得到的例外:

https://gyazo.com/c7112ac8dd23b39e4b536338e58f43ee

展开
收起
被纵养的懒猫 2019-10-09 16:59:16 540 分享 版权
阿里云 AI 助理回答

根据你描述的问题,看起来你的Eclipse已经配置了JavaFX库,但是程序运行时遇到异常。从你提供的异常截图来看,问题可能在于JavaFX的运行环境配置不正确,特别是与模块路径(module path)有关。

在Java 9及以后版本中,JavaFX被拆分成多个模块,因此需要通过模块系统来正确地引入和使用它们。确保你的项目是模块化的,并且在module-info.java文件中声明了对JavaFX模块的依赖。如果你的项目还没有这个文件,你需要创建一个。

请按照以下步骤操作:

  1. 创建或修改 module-info.java 文件: 在你的项目的源代码根目录下,如果不存在module-info.java文件,请创建一个。然后,在该文件中添加对JavaFX模块的依赖。对于一个基本的JavaFX应用,至少需要以下模块:

    module YourModuleName {
       requires javafx.controls;
       requires javafx.fxml;
    
       opens your.package.name to javafx.fxml;
       exports your.package.name;
    }
    

    其中,将YourModuleName替换为你的模块名,your.package.name替换为你的主类所在的包名。

  2. 确认JDK版本: 确保你的Eclipse使用的是支持Java模块系统的JDK(至少是Java 9及以上版本),而不是JRE。可以在Eclipse的“首选项” -> “Java” -> “已安装的JRE”中检查并配置。

  3. 构建路径和运行配置:

    • 在项目的构建路径设置中,确保JavaFX库被添加到了模块路径而非类路径。
    • 对于运行配置,确保正确的VM参数被设置以支持模块系统。这通常包括--module-path指定JavaFX库的位置以及--add-modules指定要使用的模块。
  4. 检查JavaFX库路径: 确认Eclipse中的JavaFX用户库指向的是正确的JavaFX SDK位置。如果你是从zip文件安装的JavaFX,确保Eclipse引用了解压后的lib目录下的所有jar文件。

  5. 清理并重新编译: 清理项目(Project -> Clean...),然后尝试重新编译和运行。

如果以上步骤都正确执行但问题依旧,可能需要更详细地检查异常信息,或者考虑是否Eclipse本身或其插件有兼容性问题。有时候,使用专门针对JavaFX开发的IDE插件(如e(fx)clipse)能简化配置过程并减少错误。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
问答分类:
问答标签:
问答地址: