Dream 2024-04-05 21:56 采纳率: 84.6%
浏览 21
已结题

我用的是jdk8和jdk11但是都没法用javafx.scene.robot.Robot这个库

用java8运行代码报错提示没有javafx.scene.robot.Robot这个库,网上给的最低版本的这个库是54.0,我把这个库加上又报错类文件具有错误的版本 54.0,应为52.0。但是jdk11直接就没有javafx,而且加上sdk还显示缺少JavaFx运行时组件,需要该组件来运行此应用程序。太矛盾了,而且jdk11和之后就没有自带的javafx了,额外加还显示缺少组件。

  • 写回答

2条回答 默认 最新

  • 檀越@新空间 2024-04-05 21:56
    关注

    晚上好🌙🌙🌙
    本答案参考ChatGPT-3.5

    针对你的问题,我有以下解决方案:

    1. 对于JDK8报错没有javafx.scene.robot.Robot这个库的问题,可以尝试按照以下步骤进行解决:
    • 确认你的JDK版本和你的程序使用的版本是否一致,如果不一致,则需要更换为相应版本的JDK。

    • 在使用这个库的类中添加导入语句:import javafx.scene.robot.Robot;

    • 可以尝试在编译的时候加上命令参数--module-path path-to-javafx --add-modules javafx.controls,javafx.fxml,其中path-to-javafx为JavaFX库的路径,这个命令参数可以指示JVM使用JavaFX模块。

    1. 对于JDK11没有自带JavaFX的问题,可以按照以下步骤进行解决:
    • JDK11开始,JavaFX被移动到了一个单独的模块中,需要手动下载并导入。

    • 打开JavaFX官网下载页面[https://gluonhq.com/products/javafx/],选择相应的版本并下载。

    • 下载完成后,将下载的JavaFX库文件添加到classpath中。

    • 在编译和运行的时候,需要加上命令参数--module-path path-to-javafx --add-modules javafx.controls,javafx.fxml,其中path-to-javafx为JavaFX库文件的路径,这个命令参数指示JVM使用JavaFX模块。

    以上两个方案,你可以选择适合自己的方案进行尝试。以下是给出的示例代码:

    //package com.example;
    
    import javafx.scene.robot.Robot;
    
    public class MyRobot {
        public static void main(String[] args) {
            Robot robot = new Robot();
            // some code here
        }
    }
    

    在编译的时候需要加上命令参数:

    javac --module-path path-to-javafx --add-modules javafx.controls,javafx.fxml MyRobot.java
    

    在运行的时候需要加上命令参数:

    java --module-path path-to-javafx --add-modules javafx.controls,javafx.fxml MyRobot
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月13日
  • 已采纳回答 4月5日
  • 创建了问题 4月5日