将带有JavaFX组件的Swing应用程序打包到可执行的JAR中

时间:2012-07-11 11:31:56

标签: java jar javafx packaging

我无法将包含Swing和JavaFX组件的应用程序打包到JAR文件中。从Eclipse运行它很好。但是在执行Jar时,会发生错误:运行main方法,该方法调用我的app的构造函数。构造函数调用initAndShowGUI()方法,该方法尝试创建JFXPanel以便稍后添加到JFrame,但失败并显示以下错误消息:Exception in thread "AWT-EventQueue-0" java.lang.RuntimeException: java.lang.UnsatisfiedLinkError: Can't load library: C:\Users\User\bin\glass.dll。 JavaFX似乎需要这个库,但不知何其加载。 "纯" JavaFX应用程序(没有Swing)称之为" preinitialitation"我认为JFX加载所有需要的库的方法(我不完全确定)。此外,我已经找到了有关如何部署Java Web Start应用程序或applet(http://docs.oracle.com/javafx/2/deployment/deploy_swing_apps.htm)的信息,但没有关于"标准" JAR文件。

以前有人这样做过吗?我一直在寻找解决方案,但却找不到解决方案。非常感谢帮助!

1 个答案:

答案 0 :(得分:1)

可能你的问题与包装有关。

你是如何打包应用程序的?

例如:

我知道(至少)最后两个将用于将带有JavaFX组件的Swing应用程序构建到可执行jar中。

SwingInterop示例包含一个ant脚本,用于将示例打包到可执行jar中。该示例可从javafx download site下载。

我强烈建议您查看Why should I use the JavaFX ant tasks for packaging my Swing application?哪个帖子还包含SwingInterop示例构建文件的来源。