某些javafx类无法在Eclipse中使用JavaSE8U25解析
我从Oracle安装了JavaSE8U25 JDK(64位),它应该包括JavaFX 我正在使用Win7 64位Eclipse Helios,并在类路径中包含jre,如下所示: 我试图复制本教程中的代码: Eclipse在尝试使用某些javafx类无法在Eclipse中使用JavaSE8U25解析,java,eclipse,javafx,Java,Eclipse,Javafx,我从Oracle安装了JavaSE8U25 JDK(64位),它应该包括JavaFX 我正在使用Win7 64位Eclipse Helios,并在类路径中包含jre,如下所示: 我试图复制本教程中的代码: Eclipse在尝试使用javafx.scene.control.Button.setText(String)时向我显示“类型javafx.scene.control.control无法解析。它是从必需的.class文件间接引用的”。 尝试创建StackPane对象时也会出现类似问题 以下
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();
}
}
packagejavafx;
导入javafx.application.application;
导入javafx.event.ActionEvent;
导入javafx.event.EventHandler;
导入javafx.scene.control.Button;
导入javafx.stage.stage;
公共类HelloWorld扩展了应用程序{
@凌驾
public void start(Stage primaryStage)引发异常{
按钮btn=新按钮();
btn.setText(“你好,世界!”);
btn.setOnAction(新的EventHandler(){
@凌驾
公共无效句柄(ActionEvent arg0){
System.out.println(“你好,世界!”);
}
});
StackPane root=新的StackPane();
}
}
Tl;dr:JavaSE8U25中似乎缺少一些JavaFX类,或者我在构建路径中包含jre时犯了一个错误。编辑: 您尚未导入StackPane的类:
import javafx.scene.layout.StackPane;
先前的答复:
基本上,您还没有导入javafx库,您可以添加外部jar
,并指向jfxrt.jar
,它就可以正常工作了
在我的路径中,jfxrt.jar
位于:
C:\Program Files\Java\jdk1.8.0_25\jre\lib\ext
有一个简单的方法,注意:我看到您正在使用Eclipse Helios。您还可以下载最新版本的EclipseLuna。这也会起作用
您可以尝试e(fx)clipse,在使用Eclipse开发fx应用程序时,这可能是一个有用的IDE扩展。要执行此操作,请执行以下步骤:
帮助>安装新软件
并插入URLhttp://download.eclipse.org/efxclipse/updates-released/1.1.0/site/
在“使用:”下,然后按enter键File>New>Other…
并选择JavaFX>javafxproject
jfxrt.jar
添加到类路径中
- Windows:
C:\ProgramFiles\Java\jdk1.8.0\U 25\jre\lib\ext
- Mac OS:
/Library/Java/JavaVirtualMachines/jdk1.8.0_11.jdk/Contents/Home/jre/lib/ext/jfxrt.jar
注意:e(fx)clipse为开发JavaFX应用程序提供了更多的支持。随便看看 安装最新的JDK会有所帮助。请参阅以下两个链接:
为什么在构建路径中有Java 6和Java 8?这可能会引起混乱。我把它删除了。我在构建路径中只有
jre1.8.0_25
、junit4
和jfxrt.jar
。我清理并刷新了项目,但问题仍然存在。它不应该包含在jdk中吗?不管怎样,我把它作为一个外部JAR添加到项目的构建路径中,但这并没有解决问题。它是jdk内部的jre,请看我上面的路径:),jdk也有jre文件夹,如果你看得对的话。我的意思是javaFX应该包含在jre中,也就是说,我不需要添加jfrxt.JAR
,就可以方便地使用它。但是,正如你告诉我的,问题仍然存在。谢谢你的帮助。如果我尝试按您编写的方式导入StackPane,则会得到导入javafx.scene.layout.StackPane无法解析的。我重新启动了Eclipse,但它仍然是一样的。我通过添加jfxrt.jar
使它在NetBeansIDE8.0中工作。这只是一个解决办法,但我对它没意见。导入javafx.scene.layout.StackPane,不要忘了在声明之后放“;”是的,我无法在Helios上安装e(fx)clipse,它可能太旧了。我安装了Luna,它在将jfxrt.jar
包含到类路径中后工作。我怀疑问题是除了Helios中的1.6之外,我无法切换到更新的Java编译器。这在Linux中是什么位置?在/Library/Java/JavaVirtualMachines/jdk1.8.0_11.jdk/Contents/Home/
中不存在jre/
,我如何解决这个问题?我试着重新安装,但没用。