【发布时间】:2017-01-09 20:44:17
【问题描述】:
这是我的简单 JavaFX 应用程序,我可以使用 jfx:native 和 Maven 构建本机安装程序:
public class HelloWorld extends Application {
public static void main(String... args){
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
System.out.println("Hello world!");
}
}
运行该 maven 构建时正在创建安装程序。
- 即使运行由安装程序安装的 exe 文件,Main 类也无法执行的问题可能是什么原因(在这种情况下,“Hello Word!”未按预期显示在控制台中?
- 可以通过什么方式调整下面的 maven 插件,以便在安装本机包时将 exe 添加到 PATH 中?
这是 JavaFX 的 POM 部分:
<plugin>
<groupId>com.zenjava</groupId>
<artifactId>javafx-maven-plugin</artifactId>
<version>8.7.0</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>native</goal>
</goals>
</execution>
</executions>
<configuration>
<mainClass>com.mycompany.HelloWorld</mainClass>
<nativeInstallers/>
</configuration>
</plugin>
【问题讨论】:
-
只是为了确定:您是从控制台启动可执行文件吗?否则甚至不应该有控制台。
-
是的,从控制台调用exe,它运行但根本没有输出
-
在这种情况下,JVM 的标准输出将是您启动 exe 的控制台,这一点并不明显。如果您打开一个简单的窗口,例如
primaryStage.setScene(new Scene(new StackPane(),400,400));和primaryStage.show();,你看到窗户了吗? -
嗯...它确实运行了。所以看起来 System.out.println 不适用于 JavaFX?实际上我正在尝试做一个 CLI(命令行界面)应用程序,所以命令行工作很重要。
-
不清楚您要做什么。 JavaFX 是一个 GUI 工具包。为什么要在 GUI 应用程序中使用命令行界面?