我有一个名为 Sample 的简单 javafx 应用程序,它显示当前时间。它有一个这样的控制器
SampleController.initialize()
Timeline clock =
new Timeline(
new KeyFrame(
Duration.ZERO,
e ->
{
lblTime.setText(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
}),
new KeyFrame(Duration.seconds(1)));
clock.setCycleCount(Animation.INDEFINITE);
clock.play();
该应用程序在我的 IDE 中完美运行,当它从一个启动器类(不扩展 javafx.application.Application)启动时,它的主要方法是:
Sample.main(args);
我可以使用带有 mvn gluonfx:build 的 maven 构建该应用程序(而不是启动器类),而不会产生任何抱怨。我也可以跑
mvn gluonfx:run
成功地。但是,如果我跑
mvn gluonfx:nativerun
我在控制器类中看到了 NPE。
如果我运行由 maven 生成的 .exe 文件,应用程序将启动但不显示控制器行为(每秒当前时间的格式化输出)。它不会抱怨任何事情。
有任何想法吗?