我已经在我的Mac(10.12.1)上下载并安装了STS 3.8.2。每次启动STS.app文件时,它都会创建一个新的org. springsource。sts_3.8.2。释放_########_隐藏的.eclipse文件夹下的macosx_cocoa_x86_64文件夹(哈希在那里,因为我有许多相同的文件夹,哈希区域中的数字是唯一的区别)。这样做,默认工作区和我上次运行时安装的所有插件都会被清除(因为它们存在于以前的####文件夹中)。
我尝试过安装之前的3.8.1和3.8.0版本,但它们正在做同样的事情。我之前的STS安装从3.7开始,已经升级到3.8.1,但不会再更新,因为我似乎无法修复更新错误(StackOverflow的“修复”对我都不起作用)。
有没有办法让STS每次启动时都不会在. eclipse文件夹中创建新文件夹(实例)?如果是,如何?
这已经报告给STS,并记录在这里:https://issuetracker.springsource.com/browse/STS-4406
Eclipse对应的bug是:https://bugs.eclipse.org/bugs/show_bug.cgi?id=507328
长话短说:
这是由macOS Sierra Gategger应用程序易位引起的,这是一种出于安全原因将应用程序移动到私有只读位置的安全功能。因此,Eclipse/STS在您上面描述的位置为其配置创建了一个文件夹。
由于macOS Sierra在每次重新启动后都会再次进行应用程序迁移,因此Eclipse/STS不再了解“旧”配置区域,而是创建了一个新区域。据我所见,Eclipse/STS无法区分单独安装和新迁移的应用程序…:-(
解决方法是:
>
A)解压tar. gz存档后(使用Finder,而不是命令行)将STS.app移动到磁盘上的不同位置。例如,如果您将其移动到“应用程序”,一切都像以前一样工作(在这种情况下不会发生应用程序迁移)。
B)您也可以通过单击可执行文件(STS.app/Contents/MacOS)来启动Eclipse/STS。这也不会导致应用程序易位,因此一切都很好。
因为这bug-
使用命令
sudo xattr-r-dcom.apple隔离 /Applications/sts.app
其中-r
使命令对所有应用程序内容(macOS应用程序是文件夹)递归,并且-d
删除给定路径处的特定属性。
要验证成功的结果,只需运行
sudo xattr /Applications/sts.app
你想要的成功结果是一个新的提示行。如果你在那里得到“隔离”,你就没有成功。
请注意,我只能在macOS 10.12.6中测试它