Java FX代码可以在Windows上运行,但不能在Mac OS上运行;如何在Mac OS上运行JavaFX?

Java FX代码可以在Windows上运行,但不能在Mac OS上运行;如何在Mac OS上运行JavaFX?,java,eclipse,macos,javafx,Java,Eclipse,Macos,Javafx,我有一个可以在Windows上运行的JavaFX程序,但在Mac OS上无法运行 我有MacOS Sierra 64位(最新版本为3月11日), JDK 8u121, eclipseide-NEON 行为如下:按“RUN”键时,咖啡杯出现在码头上,但一切都冻结了。然后我不得不被迫退出 我注意到一件重要的事情:当我编写一个测试应用程序(例如一个带有按钮的边框窗格)时,它工作得非常好。但是,从windows传输代码时似乎出现了问题 顺便说一句,我在网上读到了这个问题,但我所找到的都是以前的操作系统和

我有一个可以在Windows上运行的JavaFX程序,但在Mac OS上无法运行

我有MacOS Sierra 64位(最新版本为3月11日), JDK 8u121, eclipseide-NEON

行为如下:按“RUN”键时,咖啡杯出现在码头上,但一切都冻结了。然后我不得不被迫退出

我注意到一件重要的事情:当我编写一个测试应用程序(例如一个带有按钮的边框窗格)时,它工作得非常好。但是,从windows传输代码时似乎出现了问题

顺便说一句,我在网上读到了这个问题,但我所找到的都是以前的操作系统和JDK的答案

更新:

考虑这一点:

import java.awt.FileDialog;
import java.awt.Frame;
public class testClass{
    public static void main(String[] args){
        FileDialog fd = new FileDialog(new Frame(), "SELECT", FileDialog.LOAD);
        fd.setVisible(true);
    }
}
我的观察:在Windows上,会出现一个对话框,标题为“选择”

在mac上运行时,会出现一个对话框,但没有标题


现在,考虑一下:

import java.awt.FileDialog;
import java.awt.Frame;
public class testClass{
    public static void main(String[] args){
        FileDialog fd = new FileDialog(new Frame(), "SELECT", FileDialog.LOAD);
        fd.setVisible(true);
    }
}
当我注释掉FileDialog时,代码运行良好,它会显示一个500x500窗口。 但是,当我包含FileDialog部分时,它就卡住了。(没有回应)


有人想过如何解决这个问题吗?

您应该使用JavaFX的文件选择器,而不是AWT文件对话框。AWT/Swing组件和JavaFX来自不同的血统,不能轻易混合使用。这在Windows上运行的事实更像是侥幸。

您应该使用JavaFX的文件选择器,而不是AWT文件对话框。AWT/Swing组件和JavaFX来自不同的血统,不能轻易混合使用。这在Windows上运行的事实更像是一种侥幸。

为一个这样运行的示例应用程序发布代码。操作系统之间总是有一些细微的差异,但一般来说,在Windows和mac之间传输代码没有问题。@mipa有趣的是,您尝试过同样的方法吗?(将代码从Windows转移到Mac)很多人都尝试过,你应该尝试提出一个演示你遇到的问题的方法,描述你的环境、调用的详细信息、你正在使用的jdk/jre版本等@pvg,如果我在错误的论坛,很抱歉,你能告诉我正确的论坛吗?我的代码在这里不是问题,因为它在Windows上运行得非常好。为一个这样运行的示例应用程序发布代码。操作系统之间总是有一些细微的差别,但总的来说,在Windows和mac之间传输代码是没有问题的。@mipa有趣的是,您尝试过同样的方法吗?(将代码从Windows转移到Mac)很多人都尝试过,你应该尝试提出一个演示你遇到的问题的方法,描述你的环境、调用的详细信息、你正在使用的jdk/jre版本等@pvg,如果我在错误的论坛,很抱歉,你能告诉我正确的论坛吗?我的代码在这里不是问题,因为它在Windows上运行得非常好。谢谢!这对我有用。然而,我仍然有一个问题:我怎样才能得到这个头衔?我这样做了:
fd.setTitle(“选择文件”)
谢谢!这对我有用。然而,我仍然有一个问题:我怎样才能得到这个头衔?我这样做了:
fd.setTitle(“选择文件”)