Linux 中的 JDK 1.7/1.8 中缺少 JavaFX?
Posted
技术标签:
【中文标题】Linux 中的 JDK 1.7/1.8 中缺少 JavaFX?【英文标题】:JavaFX missing from JDK 1.7/1.8 in Linux? 【发布时间】:2014-02-10 08:14:52 【问题描述】:我有一个据称不可能的问题,所以我很难找到答案。
我有最新版本的 NetBeans 7.4,在完全更新的 Fedora 20 x64 上运行。正式地,这可以与 JavaFX 一起使用。时期。我有来自 repo 的 JDK (1.7.something) 和我能找到的最新版本 (1.8.0)。正式地,这些都带有JavaFX。期间。
如果我尝试创建一个新的 JavaFX 项目,它会这样说:
无法自动设置 JavaFX 平台。 请转至平台管理器,创建非默认 Java SE 平台,然后转至 JavaFX 选项卡, 启用 JavaFX 并填写有效 JavaFX SDK 和 JavaFX 运行时的路径。 注意:JavaFX SDK 可以从 JavaFX 网站下载。
好吧,我已经习惯了混乱,我想我可以解决这个问题。去创建一个新平台,然后......没有“JavaFX”选项卡。甚至花了一些研究才弄清楚它在说什么,在这个过程中,我发现该选项卡实际上已从 7.4 中删除。因为 NetBeans 7.4 绝对会自动识别 JavaFX。期间。
访问实际的 JavaFX 站点告诉我,正如预期的那样,它与我已经拥有的 Java SE 7 JDK 捆绑在一起。期间。
由于我所追求的最终结果在技术上可以通过将一个 JavaFX 组件集成到我的 Swing 应用程序中来实现,所以我尝试了这一点,但 NetBeans 仍然找不到与 JavaFX 相关的任何内容,因此如果我尝试导入此类组件,则会对我大喊大叫一件事。
所以,考虑到应该只是简单的工作只是简单的事情不是......我可以从这里去哪里?
【问题讨论】:
您是否搜索过NetBeans issue tracker,或在那里提交了错误报告? 你使用的是Oracle JDK吗? @Ben ... Sunovab!#@h,我想我在技术上不是! Repos 有 OpenJDK,直到现在我还没有发现两者之间的差异。 OpenJDK 和 JavaFX 目前在 Netbeans 下工作得很好。 【参考方案1】:目前在 Debian 和 Ubuntu(可能还有其他)中,JavaFX 是独立于 OpenJDK (openjdk-8-jdk) 的软件包,因此需要安装:
sudo apt-get install libopenjfx-java libopenjfx-java-doc
值得注意的问题(此问题不影响 Maven、JavaFX 应用程序,因此如果这是您首选的构建方法,则忽略以下问题):
如果您尝试创建一个新项目: 分类 > JavaFX 项目 > JavaFXApplication
你会得到:
Internal error. Missing resources [/resources/web-files/javafx-loading-100x100.gif]
/home/ken/NetBeansProjects/vestFxReports/nbproject/jfx-impl.xml:1465: The following error occurred while executing this line:
/home/ken/NetBeansProjects/vestFxReports/nbproject/jfx-impl.xml:3093: The following error occurred while executing this line:
/home/ken/NetBeansProjects/vestFxReports/nbproject/jfx-impl.xml:2055: Error: -includedt requires the java deployment toolkit, which is not included in this distribution
BUILD FAILED (total time: 1 second)
修复上述错误[以下步骤源自这里:http://hongouru.blogspot.com.uy/2015/09/solved-error-building-new-project-using.html]:
-
切换到文件选项卡(通常是在项目选项卡上)。
为您的项目展开节点 >
展开 nbproject 节点 > 打开“project.properties”文件。
找到
javafx.deploy.includeDT=true
这一行并将true更改为false。
现在您可以在 OpenJDK 上创建和运行 JavaFX 应用程序。
后续步骤,尽管您可能会在某些时候想要下载 JavaFX 场景构建器:http://www.oracle.com/technetwork/java/javafxscenebuilder-1x-archive-2199384.html
【讨论】:
【参考方案2】:显然,问题确实是大多数 Linux 发行版提供的开源 OpenJDK 与专有的 Oracle JDK 之间的差异。讽刺的是,这是一个众所周知的问题,但你必须专门搜索它才能找到它,到那时你已经知道了。
解决方法是下载官方的Oracle JDK,必要时在NetBeans中创建配套平台(此时位于/usr/java/jdk...
下)。之后它应该可以正常工作了。
【讨论】:
这种差异更多是 OpenJDK 的一个被误解的特性,即:JFX 已被制成一个独立的包,而在 OralceJDK 中它是一个大球。除此之外确实没有区别,请参阅我的答案以获取更多信息。【参考方案3】:也许是官方文档
https://netbeans.org/kb/docs/java/nb_fx_screencast.html https://netbeans.org/kb/72/java/javafx-setup.html可以帮你设置
【讨论】:
以上是关于Linux 中的 JDK 1.7/1.8 中缺少 JavaFX?的主要内容,如果未能解决你的问题,请参考以下文章