【发布时间】: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