evi*_*red 8 java eclipse ant javafx jar
我有一个应用程序,在从Eclipse导出为runnable jar并将其"打包所需的库到生成的JAR"后,可以使用"java -jar blah.jar"运行.
我添加了一些JavaFX代码来弹出Web浏览器.现在似乎不可能制作一个可以在小型Java版本中运行的可运行jar.当我将它导出为可运行的jar时,它会复制到我的次要版本特有的jfxrt.jar中.如果我使用"java -jar blah.jar"为完全匹配的java版本(jdk1.7.0_17)运行此jar,那么它工作正常,但如果我使用一个稍微更新(jdk1.7.0_45)然后它无法解决swingx上课正确."写一次在任何地方运行"都是如此.
我尝试使用JavaFX ant任务,但我无法完成实际打包依赖jar的任务.这实际上并不包括它创建的jar中的fx:resources jar,就像魔术eclipse"将所需的库包装到生成的JAR中"完美无缺:
<fx:jar destfile="${dist}/${dist.jar}">
<fx:application id="BlahTesterApp"
mainClass="blah.MainClass"
toolkit="swing"/>
<fileset dir="${build}"/>
<fx:resources>
<fx:fileset dir="${lib}" includes="**/*.jar" />
</fx:resources>
<manifest>
<attribute name="Implementation-Vendor" value="My Team"/>
<attribute name="Implementation-Title" value="Tester App"/>
</manifest>
</fx:jar>
Run Code Online (Sandbox Code Playgroud)
并且似乎只能创建我不想要的"本地捆绑".我不想让用户在以前能够运行darn jar时安装rpm或deb.
我不明白为什么Oracle必须在这里引入自己神奇的额外部署层.他们不想让人们使用JavaFX吗?
jew*_*sea 11
JavaFX包装替代品
由于您使用的是Eclipse,因此建议您使用备选(1),e(fx)clipse包装.
忠告
切勿尝试将Java平台库(例如jfxrt.jar)包含在您的应用程序中.您在互联网上找不到的指南应该指示您做这样的事情(由于您在问题中概述的次要版本问题之间明显不兼容).此规则的唯一例外是,如果您要构建一个不依赖于预安装的JRE(您不是这样)的自包含,本机安装的应用程序.
归档时间: |
|
查看次数: |
23058 次 |
最近记录: |