为什么SBT不能在Java中找到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本身作为两个非托管依赖项跟踪,各个开发人员必须检查版本和配置事物. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |