gpt4 book ai didi

java - OSX Java App Bundle 在 HFS+ 而不是 APFS 上运行

转载 作者:搜寻专家 更新时间:2023-11-01 03:16:59 25 4
gpt4 key购买 nike

我一直遇到这个问题,我发现网络上没有相关信息,我希望得到一些帮助,因为过去几天我一直在研究这个问题,但没有任何线索。

为什么我的 java 应用程序突然停止为 APFS 工作?如果我将应用程序移动到非 APFS USB,它会工作,但是当我将应用程序移动到格式化为 APFS 的 SSD 时,它会停止工作。

当我检查应用程序日志时,发现由于某种原因,某些库在从格式化为 APFS 的 SSD 运行时未被应用程序正确导入/识别。为什么它在 APFS SSD 和 HFS+ USB/硬盘驱动器中的表现不同?

我已经隔离了这个案例,发现只有 APFS 是公因数。我已经在其他设备上测试过它,那些在没有 APFS 驱动器的情况下运行 High Sierra 的设备,以及那些使用尚未转换为 APFS 驱动器的 SSD 运行 Sierra 的设备,只有那些使用 APFS 文件系统格式的设备遇到了问题。

附加信息:

  • Java 应用程序已正确签名,它是个人分发的,而不是通过 App Store 分发的。
  • 应用是使用 AppBundler 而非 JavaPackager 捆绑的。
  • 应用程序可在以前版本的 OSX 上运行,并已在数百台 OSX 介于 10.8 - 10.12 之间的 Mac 设备上分发和测试
  • 无法识别的库是 apache 库,例如 commons-lang-2.6(我们还没有升级到 3)、commons-logging(必须手动将日志输出到桌面以查看发生了什么).奇怪的是,应用程序能够正确导入 sqlite 库。

感谢您的浏览,如有任何建议,我们将不胜感激!

最佳答案

我已经设法解决了上述问题,但不确定原因。

解决方法:将 commons.lang.2.6 更新为 commons.lang.3.6

目前,我希望它不会遇到除此之外的任何其他问题,但我只能猜测发生了什么。

我认为 APFS 缓存了 commons.lang.3.6 的副本并使用了那个库而不是我自己的库,因此试图找到 2.6 版本的类加载器出现了问题。因为只有 APFS 会有缓存副本,所以它可以让我的应用程序在 USB 上运行。


我实际上并不知道寻找您自己问题的答案的正确礼仪,所以如果有任何我需要更改的地方,请随时更正我的帖子。

关于java - OSX Java App Bundle 在 HFS+ 而不是 APFS 上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46562000/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com