需要帮助将代码从Java 9重构为Java 8或Java 11



好吧,这是我的问题。我使用Java 9编写了一些代码,当使用JRE 10.0.2时,Java 9可以完美地编译和运行。此代码有一个用JavaFX编写的GUI,允许用户使用此代码的变体选择要监视的目录:https://docs.oracle.com/javase/tutorial/essential/io/notification.html。

我计划在一个研究项目中使用此代码,在该项目中,我在其他人的机器上运行此代码,这些人可能有也可能没有管理员权限自行安装JRE。这意味着我应该使用受支持的JRE版本,这样IT就不会让我感到悲伤——这基本上意味着Java 8或Java 11。

问题:我的代码不适用于这两个版本。这给我留下了以下场景:(1(重构我的代码,使其与Java 8兼容;或者(2(重构代码,使之与Java 11兼容。

我粗略地尝试将我的语言从9切换到8,但我得到了以下错误:

java: package javafx.animation does not exist
java: package javafx.application does not exist
java: package javafx.concurrent does not exist
java: package javafx.geometry does not exist
(+ a few more javafx packages)
Java: package com.sun.nio.file does not exist

我试着通过谷歌和Stack Overflow搜索这个问题的解决方案,但我没有找到任何东西。

在这篇文章之后,我也开始研究使用Java11:Intellij可以';我无法识别带有OpenJDK 11的javafx 11,我已经在线程中尝试了所有可能的解决方案,但我收到了以下错误消息:

JavaFX runtime components are missing, and are required to run this application

我该如何解决这些问题?

谢谢!

更新:我从下载了JavaFXhttps://openjfx.io/并将其添加到我的库中,从而解决了所有JavaFX导入的问题。com.sun.nio.file文件包更难确定。

如果没有关于代码的更多信息,很难回答这个问题。

我认为问题的原因如下:"如果你试图在JDK9下构建一个JavaFX应用程序,而目标是Java8,那么任何解析任何JavaFX类型的尝试都将失败,编译将中止。"原因是JavaFX包含在JDK9中,但不包含在JDK8中。如果这是您的问题,您需要在构建路径中包含JavaFXjar文件。

最新更新