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?的主要内容,如果未能解决你的问题,请参考以下文章

markdown 在Mac上安装卸载jdk 1.6 1.7 1.8

java 1.7 1.8新特性

windows同时安装两个jdk

java版本的选择

JDK源码学习

Tomcat的介绍与安装jdk的安装