【发布时间】:2022-02-07 01:00:02
【问题描述】:
我有一个带有以下 Java 代码的模块化 JavaFX 应用程序:
package webbrowser;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.StackPane;
import javafx.scene.web.WebView;
import javafx.scene.web.WebEngine;
import javafx.stage.Stage;
public class WebBrowser extends Application {
@Override
public void start(Stage stage) {
WebView browser = new WebView();
WebEngine webEngine = browser.getEngine();
webEngine.load("http://www.oracle.com");
Scene scene = new Scene(browser, 500, 500);
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch();
}
}
这是 module-info.java 文件:
module webBrowser {
requires javafx.controls;
requires javafx.web;
exports webbrowser;
}
我使用以下命令编译模块化 JavaFX 应用程序:
javac -d out --module-source-path . --module-path $JAVAFX_SDK/libs:$JAVAFX_JMODS --module webBrowser
我使用以下命令打包模块化 JavaFX 应用程序:
jpackage --type dmg --module-path $JAVAFX_JMODS:$JAVAFX_SDK/lib:out --add-modules javafx.controls,javafx.web,javafx.graphics,javafx.media --module webBrowser/webbrowser.WebBrowser
然后我将应用程序保存在我的 /Applications 文件夹中(我在 Mac OS 上)并打开应用程序。该应用程序打开一个 500x500 的窗口,但它不渲染任何图形,也不打开 Web 浏览器。该应用程序只是打开一个白色的空白 500x500 窗口。
为什么应用程序运行不正常?
当我使用 java(并放弃 jpackage)运行应用程序时,应用程序在 JVM 中运行良好,打开 Web 浏览器并打开 oracle.com 网页。
java --module-path out:$JAVAFX_JMODS:$JAVAFX_SDK/lib --add-modules javafx.controls,javafx.web --module webBrowser/webbrowser.WebBrowser
为什么我使用 jpackage 安装 dmg 并运行 Mac OS 应用时应用程序无法运行?
【问题讨论】:
-
您使用的是哪个版本的 JavaFX?
-
谢谢@jewelsea
-
jpackage/jlink 仅使用 jmods 目录,java/javac 仅使用 lib 文件夹。不要忘记尝试
--win-console,查看信息here
标签: java macos javafx jpackage