Linux中JDK 1.7/1.8缺少JavaFX?

Dig*_*Man 10 linux netbeans javafx-2 netbeans-7.4

我有一个据称不可能的问题,所以我很想找到答案.

我有最新版本的NetBeans 7.4,运行在完全更新的Fedora 20 x64上.正式来说,这可以与JavaFX一起使用.期.我有来自repo(1.7.something)的JDK和我能找到的最新版本(1.8.0).正式地说,这些都有JavaFX.期.

如果我尝试创建一个新的JavaFX项目,它有这样的说法:

无法自动设置JavaFX平台.请转到Platform Manager,创建一个非默认的Java SE平台,然后转到JavaFX选项卡,启用JavaFX并填写有效JavaFX SDK和JavaFX Runtime的路径.注意:JavaFX SDK可以从JavaFX网站下载.

好吧,我已经习惯了困惑的事情,我想我可以解决这个问题.去创建一个新平台,并且...没有"JavaFX"选项卡.甚至花了一些研究来找出它在说什么,在这个过程中我发现该标签实际上已经从7.4中删除了.因为NetBeans 7.4绝对可以自动识别JavaFX.期.

转到实际的JavaFX站点告诉我,正如预期的那样,它与我已经拥有的Java SE 7 JDK捆绑在一起.期.

由于我可以通过将一个JavaFX组件集成到我的Swing应用程序中来实现最终结果,但我尝试了这一点,但NetBeans仍然无法找到与JavaFX相关的任何内容,因此如果我尝试导入这样的东西,就会对我大吼大叫.

所以,鉴于那些本来应该只是简单明了的事情并不是......我在哪里可以离开这里?

Qua*_*ion 8

目前在Debian和Ubuntu(可能还有其他)中,JavaFX是OpenJDK(openjdk-8-jdk)的独立包,因此需要安装:

sudo apt-get install libopenjfx-java libopenjfx-java-doc
Run Code Online (Sandbox Code Playgroud)

值得注意的问题(这个问题并不会影响到Maven的,JavaFX应用程序,所以如果这是你的首选build方法则忽略了以下问题):

如果您尝试创建新项目:Categories> JavaFX Project> 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)
Run Code Online (Sandbox Code Playgroud)

要解决上述错误[以下步骤来自此处:http://hongouru.blogspot.com.uy/2015/09/solved-error-building-new-project-using.html]:

  1. 切换到文件选项卡(通常您在项目选项卡上).
  2. 展开项目的节点>展开nbproject节点>打开"project.properties"文件.
  3. 找到该行javafx.deploy.includeDT=true并将true更改为false.

现在,您可以在OpenJDK上创建和运行JavaFX应用程序.


接下来的步骤,虽然超出了手头的问题,你可能会在某个时候想要下载JavaFX场景构建器:http://www.oracle.com/technetwork/java/javafxscenebuilder-1x-archive-2199384.html


Dig*_*Man 1

显然,问题确实是大多数 Linux 发行版提供的开源 OpenJDK 与专有 Oracle JDK 之间的差异。讽刺的是,这是一个众所周知的问题,但你必须专门搜索它才能找到它,到那时你就已经知道了。

解决方案是下载官方的 Oracle JDK,如有必要,在 NetBeans 中创建匹配的平台(/usr/java/jdk...此时位于下)。之后它应该可以完美地工作。