【发布时间】:2021-12-29 08:51:22
【问题描述】:
我正在尝试为自制软件打包一个 GUI 应用程序,但我遇到了问题。
我正在打包这个安装脚本,按照instructions at the Frankel.ch blog:
def install
libexec.install Dir['*']
bin.write_jar_script libexec/'FOSStriangulator.jar', 'fosstriangulator'
end
我使用depends_on "openjdk" 作为我的依赖项,因为文章推荐的depends_on :java => '1.8+' 不起作用。
但是在运行这个包时,我得到了这个错误:
java.lang.NoClassDefFoundError: com/apple/eawt/QuitHandler
这是因为我的应用不是库,而是 GUI 应用吗?
在终端中,仅通过 java -jar 运行对我来说很好。
【问题讨论】:
-
其他提到该类的问题表明它自 Java 9 起不再受支持。
QuitHandler是/曾经是 Mac OS X 内部 API,在最近的版本中不再可访问。专门处理应用程序似乎有这个问题。 -
com.apple.eawt.QuitHandler 自 Java 9 起已替换为 Desktop.setQuitHandler。