加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

为什么SBT不能在Java中找到JavaFX包

发布时间:2020-12-15 04:22:00 所属栏目:Java 来源:网络整理
导读:我想尝试在sbt中创建一个简单的 JavaFX应用程序,但似乎sbt无法找到任何javafx包,给我一些错误 error: package javafx.application does not existerror: package javafx.fxml does not existerror: package javafx.scene does not exist … 等等 鉴于javafx
我想尝试在sbt中创建一个简单的 JavaFX应用程序,但似乎sbt无法找到任何javafx包,给我一些错误

error: package javafx.application does not exist
error: package javafx.fxml does not exist
error: package javafx.scene does not exist

… 等等

鉴于javafx包默认包含在Java 7中,我发现这很奇怪,所以如果有的话,编译器应该可以使用这些包,但它看起来并不是这样的.

有帮助吗?

ps:我没有使用任何与javafx相关的插件,只是纯粹的sbt,我正在尝试编译Java项目,而不是Scala编译.该项目设置为使用sbteclipse与Eclipse兼容

解决方法

如何针对JavaFX构建(在SBT或任何其他工具中)取决于您的JDK版本:

使用JDK 8

这一切都是开箱即用的:JavaFX位于jre / lib / ext中,这意味着它位于java和javac的默认类路径中,并且在编译和运行时它应该自动可用.这就是@JacekLaskowski在他的回答中的配置.

这仅适用于您只针对Java 8:JavaFX 8不适用于Java 7,因此针对它进行编译会使您的应用程序仅限Java8(除非您确保仅使用JavaFX 2.x中可用的内容,目标jdk7字节码,包JavaFX 2.x与您的应用程序等)

使用JDK 7u6

JavaFX SDK与JDK一起发布,但它不能自动获得:它不在任何类的路径上,你必须在jre / lib中查找它并自己将它添加到类路径中.这就是某些IDE在拥有JavaFX支持时自动执行的操作.

SBT不会自动为您执行此操作. sbt-javafx有一点帮助,但你仍然需要配置罐子的位置等.

使用JDK 6到JDK 7u5

您必须下载独立版本并将其添加到类路径中.以上jdk7u6案例的其余部分适用.

最后,请注意在Java 8的生命周期中将新功能添加到JavaFX中,因此构建应用程序可能需要特定版本的JDK8(这在JDK7中也有一点发生),这也是您应该打包的原因之一JavaFX与您的应用程序.

基本上,只要依赖JavaFX,就必须将JDK和/或JavaFX本身作为两个非托管依赖项跟踪,各个开发人员必须检查版本和配置事物.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读