【问题标题】:Eclipse Mars won't auto import JavaFXEclipse Mars 不会自动导入 JavaFX
【发布时间】:2015-10-28 05:02:51
【问题描述】:

因此,每次我想使用 JavaFX 8 组件时,我都必须在谷歌上搜索包的确切名称,然后手动输入

 import packageName;

我会说得更详细些。

假设我想创建一个StackPane

 StackPane stackPane = new StackPane(new ImageView(this.getClass().getResource("/images/about_icon.png").toString()));
 stackPane.setAlignment(Pos.CENTER);

那里有几节课。当我使用ctrl + o(Mac 中为cmd + o)时,它应该导入所需的包。

但事实并非如此。

事实上,我必须用谷歌搜索StackPane 的确切名称。所以,我google了一下,发现它在javafx.scene.layout.StackPane

所以,我愿意import javafx.scene.layout.StackPane;

StackPane 已修复。

现在 Eclipse 正在抱怨 ImageView,我正在为 ImageView 重复上述相同步骤。

等等。

如何改进?

我正在使用 Eclipse Mars。 Jdk 8. Mac OS X El-Capitan。

【问题讨论】:

  • 我不使用 Eclipse,而是在 Notepad++ 中手写。我喜欢自己找课。没那么难!
  • 这个问题没有多少信息可以帮助我们。请在您的问题中添加更多信息,例如您使用的环境、jdk 版本等。这些信息使人们更容易为您的问题提供解决方案。
  • 好奇:它在早期版本的 eclipse 中是否按预期工作?
  • 所以采取以下措施 - 我正在开发一个 Swing 应用程序,它应该部署到 linux-desktop 但在我的工作站上我只有 oracle-jdk。我开始输入并获得 ObservableList 的建议并发现它可用 - 当部署到具有标准化 JDK 但没有 Oracle JDK 的 linux 客户端时,此应用程序将严重崩溃!

标签: eclipse javafx-8


【解决方案1】:

您需要安装 e(fx)clipse 才能获得 JavaFX 开发工具支持。

为此

  1. 打开帮助 -> 安装新软件
  2. 为 Mars http://download.eclipse.org/releases/mars 选择软件站点
  3. 禁用按类别分组项目(遗憾的是 e(fx)clipse 团队忘记添加类别)
  4. e(fx) 的过滤器
  5. 选择 e(fx)clipse - IDE
  6. 下一个
  7. 下一个
  8. 接受许可
  9. 完成

之后,您需要重新启动 Eclipse 并且应该具有适当的 JavaFX 支持。

【讨论】:

  • hmm... 在火星之前没有这样的必要(还没有升级我的 Eclipse,所以不能说是否/发生了什么变化),它只是工作。刚刚注意到 OP 在 Mac 上,我在 Win - 这会有所不同吗?
  • 为了验证您的声明,我刚刚下载了 Luna SR2,如果没有 e(fx)clipse 工具,它也无法工作。你确定你真的没有安装这样的工具吗?或者您是否以某种方式自己修改了构建路径?我只是问,因为 JavaFX 在扩展类路径上,因此如果不进行一些开箱即用的修改,它就不能工作。
  • 很有趣 - 是的,这是一个非常简单的 Kepler-SR2 加上 jdk8 补丁安装(构建 eclipse.buildId=4.3.2.M20140221-1700)它相当旧,但是,它正在工作:) ,无需额外的工具。 Win 与 Mac?
  • 在 Mac 上的 Eclipse 安装上运行良好(我有带 e(fx)clipse 的 Luna,没有带 Mars JEE)。
  • 啊,好的:我下载了最新版本并重新创建了类似的东西。
【解决方案2】:

在全新安装最新版本的 Eclipse for Java Developers(Mars.1 版本 4.5.1)后,我能够(或多或少地)重现这一点。

我通过设置 JRE 系统库的访问限制来修复它。

从您的项目属性中,选择“Java Build Path”,选择“Libraries”选项卡,然后展开 JRE System Library:

该列表中的第一个条目是“访问规则”。选择它并按“编辑”,然后按“添加”:

对于“Resolution”,选择“Accessible”,对于“Rule Pattern”,输入“javafx/**”。

点击“确定”,直到所有对话框都消失。您的 CMD-SHIFT-O 选项现在应该能够找到 javafx 包。

【讨论】:

  • 请注意,如果您安装了 e(fx)clipse,这些步骤应该是不必要的。
  • 好好挖掘!但无论技术细节(正如stackoverflow.com/a/33385361/203657 和其他地方的评论中所暗示的那样)可能是:我确实希望 IDE 支持标准 Java SE 版本中的所有内容没有 我在做杂技(或安装附加物)
【解决方案3】:

在吸取了今天的教训之后——javafx 不是标准的java! - 我仍然很好奇为什么我在导入 javafx 时没有遇到任何问题。*

实际上,我可以在Win7上重现Mars中的问题:我所要做的就是使用公共jre作为项目的系统库。在我的环境中,我通常使用 jdk 作为系统库,这似乎没有问题。

因此,对于 Windows,一个简单的解决方案(即:不是附加工具的 requiring the installation 或项目级别的 tweaking access permissions)是使用由 jdk 支持的 java 系统库。

【讨论】:

  • 这很有趣。我总是针对映射到 JDK 的执行环境工作。在这种情况下,它不起作用。但是,如果我切换到映射到同一 JDK 的 Workspace 默认 JRE,则可以解析 javafx 导入。我认为这应该作为票提交。
  • 我为此创建了一个票证:bugs.eclipse.org/bugs/show_bug.cgi?id=480997 ... 看起来执行环境的使用导致了这种情况。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-04
  • 1970-01-01
  • 2020-12-23
  • 2016-01-02
  • 2018-08-04
相关资源
最近更新 更多