为什么我的JavaFX应用程序启动如此缓慢?

13

我的JavaFX应用程序始终比Swing应用程序启动慢得多。对于一个小应用程序来说,这比可接受的速度要慢得多。

这是否是“正常”的,还是我需要在某个地方进行更改?

编辑:我听说有一些代理问题可能会影响JavaFX应用程序的启动时间,但我不确定如何调试此问题。


1
这不正常,我很惊讶在编译后我的重型WebView是如此迅速地弹出。 - Andrey Chaschev
你正在加载哪些资源?能否提供一个示例来说明你的问题? - MadProgrammer
@MadProgrammer 不管资源有多少,如果我尝试运行一个简单的Hello World应用程序,启动速度也很慢。 - ceklock
6
您尝试过使用-Djavafx.autoproxy.disable=true这个选项吗?(请参见部署JavaFX应用程序第13.3.1节)。 - MadProgrammer
是的,使用-Djavafx.autoproxy.disable=true 进行测试,应用程序启动速度更快。我需要创建一个.bat文件来传递该参数吗?我不想要一个bat文件。 - ceklock
2
你可以将它放入 MANIFEST.MF 文件中 - 如果你使用打包工具,那么有一个选项可以添加正确的头部。 - tomsontom
1个回答

14
根据您的评论,我发现缓慢问题是由自动代理配置引起的。 NetBeans 7.4有一个选项可以解决这个问题。这是一个新的选项。我认为在NetBeans 7.3上不存在。

NetBeans 7.4

检查生成的jar文件,选项JavaFX-Feature-Proxy: None已添加到MANIFEST.MF中。
* Run the same application from the command line as
  java -jar MyApp.jar

* This way you can see actual exceptions and trace messages (if any).

* Pass "-Djavafx.verbose=true" to enable verbose output from the embedded launcher.

* If your application starts slow, then it could be due to network configuration. 
Try disabling the autoproxy configuration by passing "-Djavafx.autoproxy.disable=true" to see if it helps.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接