Eclipse没有运行JavaFX应用程序 - 运行'java'应用程序

时间:2015-01-08 18:17:28

标签: java eclipse macos javafx

每当我在Eclipse中创建项目并包含javafx时,单击运行按钮时都不会加载应用程序。

e.g。

package test;

import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class test extends Application {
    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage primaryStage) {
        primaryStage.setTitle("Hello World!");
        Button btn = new Button();
        btn.setText("Say 'Hello World'");
        btn.setOnAction(new EventHandler<ActionEvent>() {

            @Override
            public void handle(ActionEvent event) {
                System.out.println("Hello World!");
            }
        });

        StackPane root = new StackPane();
        root.getChildren().add(btn);
        primaryStage.setScene(new Scene(root, 300, 250));
        primaryStage.show();
    }
}

这应该运行一个简单的hello world应用程序,取自oracle文档。但是,当我跑步时#39;这段代码,没有窗户打开。相反,一个名为&#39; java&#39;的应用程序打开。看来&#39; java&#39;只是一个&unix可执行文件&#39;位于&#39; jdk1.8.0_25.jdk / contents / home / bin&#39;。应用程序&#39; java&#39;绝对没有显示任何内容,并且在没有强制退出的情况下无法关闭。

我在Macbook上运行eclipse。我可能遗漏了一些重要的细节......

有谁知道为什么我的应用程序没有按预期运行?原谅我的天真,我是java和eclipse的新手。

非常感谢

编辑:

import javafx.application.Application;
import javafx.stage.Stage;


public class JavaFX extends Application {

    public static void main(String[] args){
            launch(args);
    }

    @Override
    public void start(Stage stage) throws Exception {
        // TODO Auto-generated method stub
        stage.show();

    }

}

这个简单的程序也会出现同样的错误。

3 个答案:

答案 0 :(得分:3)

所以我知道这是一个古老的问题,但是我最近遇到了相信这个问题,并且想分享我找到的解决方案(尽管我对为什么有效)。

pictured

转到主类的“运行配置”,然后在“参数”选项卡上,取消选中显示“使用SWT启动时使用-XstartOnFirstThread参数”的框。

添加一个直观的问题示例,以便比我可能更了解的人解释为什么会发生这种情况/为什么此解决方案有效:

This是您尝试运行程序时得到的。名为“ java”的应用程序似乎正在运行,但未显示任何内容。

我希望这些信息能够对某人有所帮助。

答案 1 :(得分:0)

可能的解决方案从日食市场https://www.eclipse.org/efxclipse/install.html

安装

答案 2 :(得分:0)

当我尝试在具有maven依赖关系的现有SWT项目中运行JavaFX主类时,我遇到了同样的问题:

<dependency>
   <groupId>org.eclipse.swt</groupId>
    <artifactId>org.eclipse.swt.cocoa.macosx.x86_64</artifactId>
    <version>4.3</version>
</dependency>

当我注释掉这个依赖项时,显示了应用程序窗口,一切运行良好。