簡體   English   中英

OSX Java App Bundle在HFS +上運行,但不在APFS上運行

[英]OSX Java App Bundle runs on HFS+ but not APFS

我一直遇到這個問題,我發現在網上沒有任何信息,並希望得到一些幫助,因為我在過去的幾天里一直在努力,沒有任何線索。

為什么我的Java應用程序突然停止為APFS工作? 如果我將應用程序移動到非APFS USB,它可以工作,但當我將應用程序移動到格式化為APFS的SSD時,它將停止工作。

當我檢查應用程序日志時,事實證明,由於某些原因,當應用程序從格式化為APFS的SSD運行時,某些庫未被應用程序正確導入/識別。 為什么在APFS SSD與HFS + usb /硬盤驅動器中它的行為會有所不同?

我已經分離了這個案例,發現只有APFS才是常見因素。 我已經在其他設備上測試了它,那些在沒有APFS驅動器的情況下運行High Sierra的設備,以及那些使用尚未轉換為APFS驅動器的SSD運行Sierra的設備,並且只有使用APFS文件系統格式的設備遇到了問題。

附加信息:

  • Java App已經正確簽名,它是個人發布的,但不是通過App Store發布的。
  • 應用程序使用AppBundler捆綁,而不是JavaPackager。
  • 應用程序在早期版本的OSX上運行,並已在數百台Mac設備上進行分發和測試,OSX在10.8 - 10.12之間變化
  • 以某種方式無法識別的庫是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上運行。


我實際上並不知道找到你自己問題的答案的正確禮節,所以如果我需要改變什么,請隨時糾正我的帖子。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM