簡體   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