Linux中JDK 1.7 / 1.8缺少JavaFX?

时间:2014-02-10 08:14:52

标签: 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平台。       请到平台管理器,创建一个非默认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相关的任何内容,因此如果我尝试导入这样的内容,就会对我大喊大叫一件事。

所以,鉴于本来应该只是简单明了的事情不是......我可以从哪里去?

3 个答案:

答案 0 :(得分:8)

目前在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]

  1. 切换到“文件”选项卡(通常位于“项目”选项卡上)。
  2. 展开项目的节点> 展开nbproject节点>打开“project.properties”文件。
  3. 找到第javafx.deploy.includeDT=true行并将 true 更改为 false
  4. 现在,您可以在OpenJDK上创建和运行JavaFX应用程序。

    后续步骤,虽然超出了手头的问题,但您可能希望下载JavaFX场景构建器:http://www.oracle.com/technetwork/java/javafxscenebuilder-1x-archive-2199384.html

答案 1 :(得分:1)

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

解决方案是下载官方Oracle JDK,并在必要时在NetBeans中创建匹配平台(此时位于/usr/java/jdk...下)。之后它应该完美无缺。

答案 2 :(得分:0)