Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
需要帮助将代码从Java9重构到Java8或Java11吗_Java_Javafx - Fatal编程技术网

需要帮助将代码从Java9重构到Java8或Java11吗

需要帮助将代码从Java9重构到Java8或Java11吗,java,javafx,Java,Javafx,好的,这是我的问题。我使用Java 9编写了一些代码,当使用JRE 10.0.2时,它可以完美地编译和运行。此代码有一个用JavaFX编写的GUI,允许用户使用此代码的变体选择要监视的目录: 我计划在一个研究项目中使用这段代码,在其他一些人的机器上运行这段代码——这些人可能有也可能没有管理员权限自己安装JRE。这意味着我应该使用一个受支持的JRE版本,这样它就不会给我带来痛苦——这基本上意味着Java8或Java11 问题:我的代码在这两个版本中都不可用。这就给我留下了以下场景:(1)重构代码以

好的,这是我的问题。我使用Java 9编写了一些代码,当使用JRE 10.0.2时,它可以完美地编译和运行。此代码有一个用JavaFX编写的GUI,允许用户使用此代码的变体选择要监视的目录:

我计划在一个研究项目中使用这段代码,在其他一些人的机器上运行这段代码——这些人可能有也可能没有管理员权限自己安装JRE。这意味着我应该使用一个受支持的JRE版本,这样它就不会给我带来痛苦——这基本上意味着Java8或Java11

问题:我的代码在这两个版本中都不可用。这就给我留下了以下场景:(1)重构代码以与Java8兼容;(2)重构代码以与Java11兼容

我曾粗略地尝试将我的语言从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
我曾尝试通过Google和Stack Overflow搜索此问题的解决方案,但没有找到任何结果

在这篇文章之后,我也开始研究Java 11的使用:我尝试了线程中所有可能的解决方案,但我得到了以下错误消息:

JavaFX runtime components are missing, and are required to run this application
如何解决这些问题

谢谢

更新:
我从下载了JavaFX并将其添加到我的库中,解决了所有JavaFX导入的问题。要确定com.sun.nio.file包要复杂得多。

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


我认为您出现问题的原因如下所述:“如果您试图在JDK 9下构建JavaFX应用程序,同时以Java 8为目标,任何解决JavaFX类型的尝试都将失败,编译将中止。”原因是JavaFX包含在JDK 9中,而不是JDK 8中。如果这是您的问题,那么您需要在构建路径中包含javafxjar文件

我的直觉反应是:Java11应该与在Java9上运行的所有代码向后兼容。你的不工作的事实让我觉得问题不在于你使用的Java版本。例如,可能您的Java 11根本不工作。你能为我们提供在9中工作的整个类吗?如果您不能自由地向我们展示这个类,我将尝试用Java11制作一个单独的小项目,以验证您的安装/IDE不是这里的问题。如果该项目也不起作用,那么您的下一个问题将有一个最小的可验证示例:)Java11与我的代码不向后兼容,因为它们将JavaFX与其他所有内容分离()。在9中工作的整个类非常庞大,但是我将按照您的建议来验证我的安装/IDE是否正常工作。谢谢更新:system.out hello world与我的Java 11安装配合得很好,hello world的此javafx代码适用于Java 10,但不适用于Java 11。在我看来,您的依赖项不可用
com.sun.nio.file
似乎引用了一个外部库,javafx也是一个外部库,从Java11开始。但是,不知道为什么不能用Java8编译代码。但是,有些类从
com.sun
包移动到了
public
API,这可能会导致问题。。。