繁体   English   中英

Mac OSX上Java 10辅助启动器的替代方案是什么?

[英]What's the alternative of a Java 10 secondary launcher on Mac OSX?

我正在使用Maven在Windows和Mac上构建JavaFx项目。 我正在使用Maven-ant-plugin构建我的包,我的build.xml包含几个fx:secondaryLauncher块。辅助启动器使您能够在app目录中创建其他可执行文件,这些可执行文件将启动除主类之外的类。

以下是官方文档中的示例:

<fx:info title="Test Suite"/>

<fx:secondaryLauncher
    mainClass="samples.TestSuite"
    name="Suite Applications"/>
    shortcut="true"/>

<fx:secondaryLauncher name="Editor">
    <fx:bundleArgument arg="icon" value="../resources/editor.ico"/>
</fx:secondaryLauncher>

<fx:secondaryLauncher name="Spreadsheet">
    <fx:bundleArgument arg="icon" value="../resources/spreadsheet.ico"/>
</fx:secondaryLauncher>

当我从Java 8切换到Java 10时 - maven通过maven-ant-plugin创建的软件包停止在Mac OSX上创建辅助启动器。 包装器似乎忽略了fx:secondaryLauncher块。

Windows程序包包含辅助启动程序,经过研究后我发现自Java 9发布以来 - “仅支持Windows和Linux应用程序的多个入口点” (完整文档: https//docs.oracle.com /javase/9​​/deploy/self-contained-application-packaging.htm#JSDPG1000 )。

有没有人知道二次发射器的好替代品? 我宁愿最小化Windows和Mac OSX构建过程之间的差异(虽然这次可能无法;-))谢谢!

在研究了几种可能的解决方案后,看起来以下解决方案是最好的解决方案:

  1. 在hte fx:deploy xml块的fx:runtime块中指定值为“false”的“strip-native-commands”属性。 这意味着您的应用程序包将在自包含的安装包中包含主要的java可执行文件。
  2. 而不是调用不再存在的辅助启动程序可执行文件 - 激活可执行文件直接调用的类(例如,运行java -cp。

这有几个好处:

  1. 代码/ pom / build.xml的最小更改。
  2. 不依赖于用户安装的JRE,因为您在应用程序安装过程中使用了JRE。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM