【发布时间】:2017-11-15 07:38:29
【问题描述】:
我在 IntelliJ 中有一个 JavaFX 应用程序设置。这个应用程序可以从命令行运行,也可以作为 jar 的 gui 运行。除了 jar 中的两种模式之外,我还想发布一个本机包(在我的情况下,对于 mac,所以 dmg)。我想通过在 main() 中创建一个 if 语句来执行此操作,该语句需要指示是否启动 gui。这是我的课。
public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception{
Parent root = FXMLLoader.load(getClass().getResource("dummy.fxml"));
primaryStage.setTitle("TODO");
primaryStage.setScene(new Scene(root, 400, 400));
primaryStage.show();
}
public static void main(String[] args) {
if (args[0].equals("user_interface")) {
//launch gui version
launch(args);
} else {
//Run command line version of the app
//TODO
}
}
}
我在我的 intellij 项目中创建了两个构建工件。一个用于 jar,一个用于 javafx 应用程序以生成 dmg。
罐子工作得很好。它在 cli 中运行并启动 javafx 应用程序,但我不知道在创建本机包时如何传递参数,以便我可以传入“user_interface”。有谁知道在创建原生包工件时如何传递参数?
如果有更好的方法来做到这一点?只有两个要求。
- 应该有两个工件。一个罐子和一个 dmg。
- jar 可以在 cli 或 gui 模式下运行。
【问题讨论】:
-
也有点跑题了,但你应该在访问索引 0 之前检查 args 的长度:
if (args.length >= 1 && args [0].equals....
标签: java intellij-idea javafx javafx-2 javafx-8