Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么';MacOSX上Java10辅助启动器的替代方案是什么?_Java_Maven_Maven Plugin_Maven Antrun Plugin_Java 10 - Fatal编程技术网

什么';MacOSX上Java10辅助启动器的替代方案是什么?

什么';MacOSX上Java10辅助启动器的替代方案是什么?,java,maven,maven-plugin,maven-antrun-plugin,java-10,Java,Maven,Maven Plugin,Maven Antrun Plugin,Java 10,我正在使用Maven在Windows和Mac上构建一个JavaFx项目。我正在使用Maven ant插件构建我的软件包,my build.xml包含几个fx:secondaryLauncher块。Secondary launchers允许您在应用程序目录中创建其他可执行文件,这些文件将启动除主类以外的类 以下是官方文件中的一个示例: 快捷方式=“真”/> 当我从Java8切换到Java10时,maven通过maven ant插件创建的包停止了在MacOSX上创建辅助启动器。包装商似乎忽略

我正在使用Maven在Windows和Mac上构建一个JavaFx项目。我正在使用Maven ant插件构建我的软件包,my build.xml包含几个fx:secondaryLauncher块。Secondary launchers允许您在应用程序目录中创建其他可执行文件,这些文件将启动除主类以外的类

以下是官方文件中的一个示例:


快捷方式=“真”/>

当我从Java8切换到Java10时,maven通过maven ant插件创建的包停止了在MacOSX上创建辅助启动器。包装商似乎忽略了fx:secondaryLauncher块

Windows软件包确实包含辅助启动器,在研究了一点之后,我发现自从Java 9发布以来—“多个入口点仅支持Windows和Linux应用程序”(这里有完整的文档:)

有人有没有一个好的替代二级发射器的想法? 我更愿意最小化Windows和Mac OSX构建过程之间的差异(尽管这次可能无法;-)
谢谢

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

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

  • 对代码/pom/build.xml的最小更改
  • 不依赖于用户安装的JRE,因为您使用作为应用程序安装一部分安装的JRE
  • <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>