JavaFX:将参数传递给自包含的应用程序不起作用

时间:2015-03-13 11:03:09

标签: java javafx bundle packaging

我的应用程序捆绑/打包为本机应用程序。从JDK 8u40开始,应该可以将参数传递给捆绑的应用程序。但这不起作用。

结果目录:

  • app目录
  • 运行时目录
  • msvcp100.dll
  • msvcr100.dll
  • packager.dll
  • MyApp.exe的
  • MyApp.ico

当我从Windows资源管理器调用MyApp.exe时,应用程序将作为JavaFX GUI应用程序启动。在我的main()方法中,当传递参数时,我有一个开关做其他事情(在这种情况下做一个system.out.println)。当我打电话给#34; MyApp.exe Hallo test"时,没有任何反应。 GUI也没有启动。我不相信我的main()方法被调用,因为我在此方法的入口点之后放置了另一个system.out.println。

根据http://docs.oracle.com/javase/8/docs/technotes/guides/deploy/self-contained-packaging.html#JSDPG995

参见章节7.3.6将参数传递给自包含的应用程序

它应该开箱即用。

那有什么不对?我的输出在哪里?

1 个答案:

答案 0 :(得分:0)

当您作为原生应用启动时,可能无法调用main方法,您应该在应用程序的start方法中解析所有参数,或者可以按照{{3强制调用main方法。

来自these instructions

  

当使用JavaFX Packager工具创建应用程序的JAR文件时,JavaFX应用程序不需要main()方法,该工具将JavaFX Launcher嵌入JAR文件中。但是,包含main()方法非常有用,因此您可以运行在没有JavaFX Launcher的情况下创建的JAR文件,例如在使用未完全集成JavaFX工具的IDE时。此外,嵌入JavaFX代码的Swing应用程序需要main()方法。