提问者:小点点

jpack构建的MacOS应用启动器未完成启动


我想将我的教育应用程序(Java/Swing)发布到MacOS,我正在使用JDK16.0.2及其jpack命令行工具来构建安装程序/启动器。

在详细模式下,该过程似乎没有错误;我在结论中得到了这一点:

成功构建Mac DMG包

安装程序一直工作到我有一个xxxxxxx.app(在应用程序文件夹中),我双击它。在扩展坞中,应用程序图标出现并反弹,但控制权从未传递给我的应用程序的main()。没有关于错误或意外的反馈。

我查看了ActivityMonitor,我看到大约有30个进程响应双击而增长,但它们会在一两秒钟内失败并停止。

环境:2021 iMac(intel)运行BigSur Eclipse forJavaSE(2001-3)在构建路径中导出runnablejar(双击jar文件会正确启动应用)JRE 16.0.2

有没有人遇到过这种完全没有问题迹象的启动失败故障?有没有办法在应用启动器执行过程中获得冗长的反馈?如何调试?

jpackage --input ~/git/DataflowGeometry/AlgoGeom_V2 --main-jar ~/DFG2D_MacOS_Manufacturing/AppJAR/DFG2D_Mac_J1602.jar --main-class ~/git/DataflowGeometry/AlgoGeom_V2/src/workspace2D/DataflowGeometry2D --dest ~/DFG2D_MacOS_Manufacturing/MacOSInstallers/DFG2D_Mac_J1602 --app-version "1.0.0"  --copyright "All rights reserved Spatial Thoughtware 2022" --name DataflowGeometry2D --description "21st Century Geometry Problem-Solving Workspace" --vendor "Spatial Thoughtware" --input ~/git/DataflowGeometry/AlgoGeom_V2/src/DFG2D_AppData --java-options "-d64 -splash:$APPDIR/SplashScreenDFG2D.png" --verbose

共1个答案

匿名用户

最后一个问题是最重要的,如何调试启动器?

右键单击YourApplication.app(在应用程序文件夹中)…显示包内容。

在MacOS文件夹中,右键单击显示您的应用程序名称的终端图标。使用终端打开……

这将向您显示在启动序列期间触发的任何错误。

我的问题有3个方面,除了最后一个之外,所有问题都显示为终端文本转储中的错误:

>

  • 我从来没有安装过完整的JavaJDK16,只有JRE 16。这足以在Eclipse中编译和运行应用程序,但是JPackage使用的代码只在JDK中,而不是JRE中。

    在我的jpack命令中,我有一个--java选项"-d64-splash: xxx",启动器无法识别。我删除了"-d64"。如果您有多个java选项,每个选项都保证自己的--java选项语句(每个选项都应该有一个选项作为参数)。

    我通过猜测发现了最后一个:

    最后,我得到了一个漂亮的基于安装程序的启动。