【问题标题】:No window comes up when running javafx application运行 javafx 应用程序时没有出现窗口
【发布时间】:2019-12-24 12:16:12
【问题描述】:

使用 VM 参数运行 JavaFX 应用程序。程序编译并运行。在 MacOS 上使用 Eclipse。当程序运行时,它会在 Dock 中显示 java 咖啡杯徽标,但没有出现任何窗口。

我希望能够成功运行这个程序。我相信这是一个 Eclipse 配置问题,而不是代码。

让 JavaFX 在 Eclipse for Mac 上运行时遇到了很多问题,主要问题是库不存在并且不会导入。我可以通过从这里 (https://gluonhq.com/products/javafx/) 下载 JavaFX 来让它工作,在我的项目中创建一个用户定义的库并使用 VM 参数运行程序:--module-path /Library/Java/JavaVirtualMachines/javafx- sdk-11.0.2/lib --add-modules=javafx.controls。现在程序编译了,但我遇到了上述问题。

这篇文章描述了我遇到的问题:https://discussions.apple.com/thread/7886329

import javafx.application.*;
import javafx.scene.*;
import javafx.stage.*;
import javafx.scene.layout.*;
import javafx.scene.control.*;

public class SimpleCalculator extends Application
{

    private Label firstValue;
    private Label secondValue;
    private Label sumLabel;

    public void start( Stage myStage) 
    {
        myStage.setTitle( "Simple Calculator");
        FlowPane rootNode = new FlowPane();        
        Scene myScene = new Scene( rootNode, 300, 200 );           

        Label firstValue = new Label( "First Value: ");            
        Label secondValue = new Label( "Second Value: ");          
        Label sumLabel = new Label( "Sum is: ");                   

        TextField firstField = new TextField();                    
        TextField secondField = new TextField();                   
        TextField sumField = new TextField();                      

        sumField.setEditable(false);                               

        rootNode.getChildren().addAll( firstValue, firstField, secondValue, secondField, sumLabel, sumField);
        myStage.setScene( myScene );                                                                                        
        myStage.show();                                                                                          
    }

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

}

窗口弹出并显示标签和字段。我当前的代码没有发生这种情况。

【问题讨论】:

  • 你的程序在我的 Mac 上运行没有问题。所以它既不是编程问题,也不是一般的 Eclipse/Mac/JavaFX 问题。如果您已正确设置项目,则无需在命令行上弄乱模块路径。唯一确实需要的行是 --add-modules=javafx.controls 为了进一步的帮助,有必要了解 Eclipse、JDK 和 JavaFX 的确切版本以及它们的供应商。
  • 嗨。感谢您的回复。我将 VM 参数更新为 --add-modules=javafx.controls。仍然遇到同样的问题。你能建议你的项目是什么吗?我正在使用 Eclipse 版本:2019-03 (4.11.0)、Java jdk-11.0.4.jdk、JavaFX javafx-sdk-11.0.2。
  • 我还询问了供应商。例如,目前 AdoptOpenJDK 发行版似乎存在问题。
  • 我用 javafx-sdk-12.0.2 和 Java jdk-12.0.1.jdk 中的 JavaFX JAR 创建了另一个项目,它现在可以工作了!虚拟机参数 --module-path /Library/Java/JavaVirtualMachines/javafx-sdk-12.0.2/lib --add-modules=javafx.controls

标签: java eclipse macos javafx java-11


【解决方案1】:

我遇到了这个问题,与我看到的其他 3 个帖子相关联的人也遇到了这个问题。

我在 Eclipse 的运行配置中禁用了这个选项: 使用 SWT 启动时使用 -XstartOnFirstThread 参数

然后完美运行

【讨论】:

  • 这很奇怪,我试过了,得到了调用目标异常。我的窗口仍然无处可见。奇怪。
  • 我遇到了同样的问题,我搜索了大约 10 个线程,这是唯一修复它的线程。谢谢!
猜你喜欢
  • 2021-01-20
  • 1970-01-01
  • 2014-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-29
  • 1970-01-01
相关资源
最近更新 更多