好吧,这是我的问题。我使用Java 9编写了一些代码,它在使用JRE10.0.2时编译和运行非常完美。这段代码有一个用JavaFX编写的图形用户界面,允许用户使用这个代码的变体:https://docs.oracle.com/javase/tutorial/essential/io/notification.html来选择要监视的目录。
我计划在一个研究项目中使用这段代码,在这个项目中,我在其他人的机器上运行这段代码--他们可能拥有或可能没有管理权限,可以自己安装JRE。这意味着我应该使用受支持的JRE版本,这样它就不会让我感到悲伤--这基本上意味着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我尝试通过谷歌和堆栈溢出搜索这个问题的解决方案,但我没有找到任何东西。
在这篇文章之后,我还开始研究如何使用Java11:Intellij无法识别OpenJDK 11的javafx 11和我尝试了线程中所有可能的解决方案,但是我得到了以下错误消息:
JavaFX runtime components are missing, and are required to run this application我如何解决这些问题?
谢谢!
更新:我从https://openjfx.io/下载了https://openjfx.io/并将它添加到我的库中,从而解决了所有JavaFX导入的问题。com.sun.nio.file包更难搞清楚。
发布于 2018-10-25 17:51:33
如果没有关于代码的更多信息,这是很难回答的。
我认为造成问题的原因是这里:“如果您试图在JDK 9下构建一个JavaFX应用程序,同时以Java 8为目标,任何解决任何JavaFX类型的尝试都将失败,编译将失败。”原因是JavaFX包含在JDK 9中,而不是JDK 8中。如果这是您的问题,您需要在构建路径中包含JavaFX jar文件。
https://stackoverflow.com/questions/52994779
复制相似问题