Java 应用程序:检测是否从挂载的 dmg 启动
Java application: detect whether launched from mounted dmg
Java 应用程序如何在 macOS 上检测到它是从挂载的 dmg 启动的(而不是从可写文件系统启动 - 即使可写意味着需要管理员权限)?
我认为,java 应用程序无法跨越文件系统以其现有权限呈现给它的内容之外的任何内容。文件系统不会告诉它它是已安装的 dmg、ssd 或网络驱动器。
如果你只是想知道,如果文件系统的一部分,应用程序在 (System.getProperty("user.dir")
) 中启动是可写的,你可以尝试创建一个空文件。
如果您想知道它是否可写,是否可以 运行 在提升的权限下,同样,您不能。
应用程序从 /private/var/folders/
开头的路径启动并包含 /AppTranslocation/
,因此检查这应该是检测是否从安装的 dmg 文件启动的合理方法。
Java 应用程序如何在 macOS 上检测到它是从挂载的 dmg 启动的(而不是从可写文件系统启动 - 即使可写意味着需要管理员权限)?
我认为,java 应用程序无法跨越文件系统以其现有权限呈现给它的内容之外的任何内容。文件系统不会告诉它它是已安装的 dmg、ssd 或网络驱动器。
如果你只是想知道,如果文件系统的一部分,应用程序在 (System.getProperty("user.dir")
) 中启动是可写的,你可以尝试创建一个空文件。
如果您想知道它是否可写,是否可以 运行 在提升的权限下,同样,您不能。
应用程序从 /private/var/folders/
开头的路径启动并包含 /AppTranslocation/
,因此检查这应该是检测是否从安装的 dmg 文件启动的合理方法。