【发布时间】:2017-08-02 07:22:28
【问题描述】:
我有一个可以在 Windows 上运行的 JavaFX 程序,但无法在 Mac OS 上运行。
我有 MacOS Sierra 64 位(3 月 11 日最新), JDK 8u121, Eclipse IDE - 霓虹灯
行为如下:按下“RUN”后,咖啡杯出现在底座中,但一切都冻结了。然后我不得不强制退出它。
我注意到一些重要的事情:当我编写一个测试应用程序(例如带有按钮的边框窗格)时,它工作得非常好。但是,从 windows 传输代码似乎存在问题
附言。我已经在网上阅读过这个问题,但我发现的只是以前的操作系统和 jdks 的答案。
更新:
考虑一下:
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 上,会出现一个以 SELECT 为标题的对话框。
在 mac 上运行时,会出现一个对话框,但没有标题。
现在,考虑一下:
当我注释掉 FileDialog 时,代码可以正常工作,它会打开一个 500x500 的窗口。 但是,当我包含 FileDialog 部分时,它会卡住。 (没有回应)
import java.awt.FileDialog;
import java.awt.Frame;
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.stage.Stage;
public class testClass extends Application{
public static void main(String[] args){
launch(args);
}
@Override
public void start(Stage stage) throws Exception {
FileDialog fd = new FileDialog(new Frame(), "LOAD", FileDialog.LOAD);
fd.setVisible(true);
Group g = new Group();
Scene scene = new Scene(g, 500, 500);
stage.setScene(scene);
stage.show();
}
}
有人对如何解决此问题有任何想法吗?
【问题讨论】:
-
以这种方式运行的示例应用程序的邮政编码。
-
操作系统之间总是存在一些细微的差异,但总的来说,在 windows 和 mac 之间传输代码是没有问题的。
-
@mipa 有趣,你也试过吗? (将代码从 Windows 转移到 Mac)
-
很多人都试过了,你应该试着想出一个minimal reproducible example来证明你遇到的问题,描述你的环境,调用细节,你的jdk/jre版本使用等。
-
@pvg,对不起,如果我在错误的论坛中,请您指导我正确的论坛吗?我的代码在这里不是问题,因为在 Windows 上运行良好。