使用 Java SE 8u25 在 Eclipse 中无法解析某些 javafx 类
Some javafx classes cannot be resolved in Eclipse using Java SE 8u25
我从 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)
时显示 "The type javafx.scene.control.Control cannot be resolved. It is indirectly referenced from required .class files"。
尝试创建 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:某些 JavaFX 类 似乎在 Java SE 8u25 中丢失,或者我在构建路径中包含 jre 时犯了一个错误。
编辑 :
您还没有为 StackPane 导入 class :
import javafx.scene.layout.StackPane;
上一个答案:
基本上你没有导入你的 javafx 库,你可以 Add External JARs
,并指出 jfxrt.jar
,它会工作得很好。
在我的路径中,jfxrt.jar
在:
C:\Program Files\Java\jdk1.8.0_25\jre\lib\ext
有一个简单的方法,
注意: 我看到您正在使用 Eclipse Helios。您还可以下载最新版本的 Eclipse Luna。这也可以。
您可以尝试 e(fx)clipse,这在使用 Eclipse 开发 FX 应用程序时可能是一个有用的 IDE 扩展。为此,请按照下列步骤操作:
- 打开 Eclipse 并转到
Help > Install New Software
并在 "Work with:" 下插入 URL http://download.eclipse.org/efxclipse/updates-released/1.1.0/site/
然后按回车键
- 加载包后,select 并同时安装它们
- 重新启动 Eclipse 后,您可以转到
File > New > Other ...
和 select JavaFX > JavaFX Project
- 还有一步要做:通过转到项目属性并 selecting "Add external JAR ..." 将
jfxrt.jar
添加到类路径
- Windows:
C:\Program Files\Java\jdk1.8.0_25\jre\lib\ext
- Mac OS:
./Library/Java/JavaVirtualMachines/jdk1.8.0_11.jdk/Contents/Home/jre/lib/ext/jfxrt.jar
.
- 准备制作可爱的 JavaFX GUI!
注意:e(fx)clipse 为开发 JavaFX 应用程序提供了更多支持。随意看看。
安装最新的 JDK 会有帮助。请看两个链接:
enter link description here
enter link description here
我从 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)
时显示 "The type javafx.scene.control.Control cannot be resolved. It is indirectly referenced from required .class files"。
尝试创建 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:某些 JavaFX 类 似乎在 Java SE 8u25 中丢失,或者我在构建路径中包含 jre 时犯了一个错误。
编辑 :
您还没有为 StackPane 导入 class :
import javafx.scene.layout.StackPane;
上一个答案:
基本上你没有导入你的 javafx 库,你可以 Add External JARs
,并指出 jfxrt.jar
,它会工作得很好。
在我的路径中,jfxrt.jar
在:
C:\Program Files\Java\jdk1.8.0_25\jre\lib\ext
有一个简单的方法,
注意: 我看到您正在使用 Eclipse Helios。您还可以下载最新版本的 Eclipse Luna。这也可以。
您可以尝试 e(fx)clipse,这在使用 Eclipse 开发 FX 应用程序时可能是一个有用的 IDE 扩展。为此,请按照下列步骤操作:
- 打开 Eclipse 并转到
Help > Install New Software
并在 "Work with:" 下插入 URLhttp://download.eclipse.org/efxclipse/updates-released/1.1.0/site/
然后按回车键 - 加载包后,select 并同时安装它们
- 重新启动 Eclipse 后,您可以转到
File > New > Other ...
和 selectJavaFX > JavaFX Project
- 还有一步要做:通过转到项目属性并 selecting "Add external JAR ..." 将
jfxrt.jar
添加到类路径- Windows:
C:\Program Files\Java\jdk1.8.0_25\jre\lib\ext
- Mac OS:
./Library/Java/JavaVirtualMachines/jdk1.8.0_11.jdk/Contents/Home/jre/lib/ext/jfxrt.jar
.
- Windows:
- 准备制作可爱的 JavaFX GUI!
注意:e(fx)clipse 为开发 JavaFX 应用程序提供了更多支持。随意看看。
安装最新的 JDK 会有帮助。请看两个链接: enter link description here enter link description here