使用 Java SE 8u25 在 Eclipse 中无法解析某些 javafx 类
Posted
技术标签:
【中文标题】使用 Java SE 8u25 在 Eclipse 中无法解析某些 javafx 类【英文标题】:Some javafx classes cannot be resolved in Eclipse using Java SE 8u25 【发布时间】:2015-03-16 16:44:11 【问题描述】:我从 Oracle 安装了 Java SE 8u25 JDK(64 位),其中应该包括 JavaFX。
我正在使用 Win7 64 位、Eclipse Helios 并将 jre 包含在类路径中,如下所示:
我正在尝试复制本教程中的代码: http://docs.oracle.com/javase/8/javafx/get-started-tutorial/hello_world.htm
Eclipse 在尝试使用javafx.scene.control.Button.setText(String)
时向我显示“无法解析类型 javafx.scene.control.Control。它是从所需的 .class 文件中间接引用的”。
尝试创建StackPane
对象时会出现类似问题。
这是目前为止的代码:
package javaFX;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.control.Button;
import javafx.stage.Stage;
public class HelloWorld extends Application
@Override
public void start(Stage primaryStage) throws Exception
Button btn = new Button();
btn.setText("Hello world!");
btn.setOnAction(new EventHandler<ActionEvent>()
@Override
public void handle(ActionEvent arg0)
System.out.println("Hello world!");
);
StackPane root = new StackPane();
Tl;dr:Java SE 8u25 中似乎缺少一些 JavaFX 类,或者我在构建路径中包含 jre 时出错。
【问题讨论】:
为什么在构建路径中有 Java 6 和 Java 8?这可能会造成混乱。 我删除了它。我在构建路径中只有jre1.8.0_25
、JUnit 4
和jfxrt.jar
。我清理并刷新了项目,问题仍然存在。
【参考方案1】:
编辑:
您还没有为 StackPane 导入类:
import javafx.scene.layout.StackPane;
上一个答案:
基本上你还没有导入你的javafx库,你可以Add External JARs
,并指出jfxrt.jar
,它就可以正常工作了。
在我的路径中,jfxrt.jar
在:
C:\Program Files\Java\jdk1.8.0_25\jre\lib\ext
有一个简单的方法,
【讨论】:
不应该包含在jdk中吗?无论哪种方式,我都将其作为外部 JAR 添加到项目的构建路径中,但这并没有解决问题。 在jdk里面是jre,看看我上面的路径..:),如果你没看错的话jdk也有jre文件夹 我的意思是 javaFX 应该包含在 jre 中,即我不需要添加jfrxt.jar
来使用它 afaik。但是,I included it 就像你告诉我的那样,但问题仍然存在。
感谢您的帮助。如果我尝试按照您编写的方式导入 StackPane,我会得到 The import javafx.scene.layout.StackPane cannot be resolved
。我重新启动了 Eclipse,但它仍然是一样的。我通过添加 jfxrt.jar
让它在 Netbeans IDE 8.0 中工作。这只是一种解决方法,但我对它很好。
导入javafx.scene.layout.StackPane,别忘了放“;”声明后【参考方案2】:
注意:我看到您正在使用 Eclipse Helios。您还可以下载最新版本的 Eclipse Luna。这也可以。
您可以尝试 e(fx)clipse,这在使用 Eclipse 开发 FX 应用程序时可能是一个有用的 IDE 扩展。为此,请按以下步骤操作:
-
打开 Eclipse 并转到
Help > Install New Software
并在“使用:”下插入 URL http://download.eclipse.org/efxclipse/updates-released/1.1.0/site/
,然后按 Enter
加载软件包后,选择并安装它们
重启 Eclipse 后,您可以转到 File > New > Other ...
并选择 JavaFX > JavaFX Project
还有一步要做:通过转到项目属性并选择“添加外部 JAR ...”,将 jfxrt.jar
添加到类路径中
窗口:C:\Program Files\Java\jdk1.8.0_25\jre\lib\ext
Mac 操作系统:./Library/Java/JavaVirtualMachines/jdk1.8.0_11.jdk/Contents/Home/jre/lib/ext/jfxrt.jar
。
准备好制作可爱的 JavaFX GUI!
注意:e(fx)clipse 为开发 JavaFX 应用程序提供了更多支持。随意看看。
【讨论】:
是的,我无法在 Helios 上安装 e(fx)clipse,它可能太旧了。我安装了 Luna 并在将jfxrt.jar
包含到类路径后工作。我怀疑问题在于我无法在 Helios 中切换到除 1.6 之外的更新的 Java 编译器。
这是在 Linux 中的什么地方?
/Library/Java/JavaVirtualMachines/jdk1.8.0_11.jdk/Contents/Home/
中不存在jre/
,我该如何解决?我尝试重新安装,但没有成功。【参考方案3】:
安装最新的 JDK 会有所帮助。请看两个链接: enter link description here enter link description here
【讨论】:
以上是关于使用 Java SE 8u25 在 Eclipse 中无法解析某些 javafx 类的主要内容,如果未能解决你的问题,请参考以下文章
java1234教程系列笔记 S1 Java SE 02 eclipse初步使用注释标识符
Eclipse java SE版本解决无法新建web项目问题
eclipse中Java(TM) Platform SE binary已停止工作怎么解决
eclipse通过maven建立java se工程配置log4j,打包成zip,将jar包和配置文件分开,并以bat和sh文件启动java程序