Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.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
OSX Java应用程序包在HFS+;但不是APFS_Java_Macos_Macos High Sierra_App Bundle_Apfs - Fatal编程技术网

OSX Java应用程序包在HFS+;但不是APFS

OSX Java应用程序包在HFS+;但不是APFS,java,macos,macos-high-sierra,app-bundle,apfs,Java,Macos,Macos High Sierra,App Bundle,Apfs,我一直遇到这个问题,我发现在网上没有任何信息,我希望得到一些帮助,因为我已经在这几天没有线索的工作 为什么我的java应用突然停止为APFS工作?如果我将应用程序移动到非APFS USB,它会工作,但当我将应用程序移动到格式化为APFS的SSD时,它会停止工作 当我检查应用程序日志时,发现由于某种原因,当应用程序从SSD格式化为APFS运行时,某些库没有被正确导入/识别。为什么它在APFS SSD和HFS+usb/硬盘驱动器中的表现会有所不同 我已经隔离了这个案例,发现只有APF才是共同因素。我

我一直遇到这个问题,我发现在网上没有任何信息,我希望得到一些帮助,因为我已经在这几天没有线索的工作

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

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

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

其他信息:

  • Java应用程序已正确签名,它是个人分发的,但不是通过应用程序商店分发的
  • 应用程序是使用AppBundler而不是JavaPackager绑定的
  • 该应用程序在OSX的早期版本上运行,并在数百台Mac设备上进行了分发和测试,OSX的范围在10.8-10.12之间
  • 不知何故没有被识别的库是apache库,比如commons-lang-2.6(我们还没有升级到3),commons日志(必须手动将日志输出到桌面上才能看到发生了什么)。奇怪的是,应用程序能够正确导入sqlite库

感谢您的关注,如果您有任何建议,我们将不胜感激

我已经设法解决了上述问题,但我不确定为什么

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

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

我认为APFS缓存了commons.lang.3.6的一个副本,并使用了该库而不是我自己的库,因此类装入器在尝试查找2.6版本时出现了问题。因为只有APFS有一个缓存副本,所以它允许我的应用程序在USB上运行



事实上,我不知道找到你自己问题答案的正确礼仪,因此如果有任何需要更改的地方,请随时更正我的帖子。

你能给我们提供一些关于未被正确识别的库的更多信息吗?@AleksandrMukhalov我在原始问题中添加了一些库。谢谢你的关注!APFS是否配置为区分大小写(过去只有此变体可用)?你的HFS+USB驱动器(通常不是)怎么样?类装入器和包依赖于文件names@BrunoGrieder我认为苹果官方发布的变体应该区分大小写?我想我找到了解决办法,所以我会把它贴出来。