为了账号安全,请及时绑定邮箱和手机立即绑定

如果通过双击 JNLP 文件启动 JAVA Web Start 应用程序

如果通过双击 JNLP 文件启动 JAVA Web Start 应用程序

胡说叔叔 2023-11-10 15:37:49
在 macOS Catalina 中,我们遇到以下问题:通过双击 JNLP 文件启动应用程序和通过双击桌面上安装的快捷方式启动应用程序时,打开 Java Web Start 应用程序的行为不同。在第一种情况下(双击下载的 JNLP 文件)应用程序在没有访问文件系统的权限的情况下打开 - 尝试在 JAVA 代码中获取用户桌面目录中的目录列表始终返回 null。不会向用户提示询问访问文件系统的任何权限。这不是预期的行为。在第二种情况下(从桌面快捷方式启动),首先提示用户应用程序正在尝试访问文件系统并请求权限。当用户允许应用程序访问文件时 - 应用程序正确读取用户的桌面目录。这是预期的行为。有解决方法吗?如果通过双击 JNLP 文件启动 Web 启动应用程序,我们如何才能访问 Catalina 上的文件系统(这是应用程序至少第一次启动的方式)?
查看完整描述

4 回答

?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

我在运行旧版 .jnlp 应用程序时遇到了类似的问题。我只需从 CLI(iTerm/Terminal/etc.)调用应用程序就可以解决这个问题:

# javaws filename.jnlp

根本原因是 macOS 10.15 (Catalina) 现在要求非 Apple 应用程序被专门授予“完全磁盘访问”权限。我将 /usr/bin/javaws (以及其他 java 二进制文件,例如 java 和 appletviewer)添加到“完整磁盘访问”,但这并没有解决问题。

基于较旧的线程,似乎如果应用程序的路径不在 /Applications/ 下(在这种情况下,java 和 javaws 位于 /System/ 下而不是 /Applications/ 下),则不支持完全磁盘访问。因此,Apple 很可能需要提供修复程序,以允许从 UI 运行这些应用程序。


查看完整回答
反对 回复 2023-11-10
?
收到一只叮咚

TA贡献1821条经验 获得超4个赞

我们能够通过授予完全磁盘访问权限来解决此问题/System/Library/CoreServices/Java Web Start.app



查看完整回答
反对 回复 2023-11-10
?
一只萌萌小番薯

TA贡献1795条经验 获得超7个赞

我在 OSX Catalina 10.15.7 上遇到了同样的问题。我能够通过首先设置 JAVA_HOME 来启动 jnlp 文件。

export JAVA_HOME=$(/usr/libexec/java_home)
javaws /path/to/file.jnlp


查看完整回答
反对 回复 2023-11-10
?
噜噜哒

TA贡献1784条经验 获得超7个赞

对我来说,这个问题是通过安装不同版本的 Java 解决的。



查看完整回答
反对 回复 2023-11-10
  • 4 回答
  • 0 关注
  • 229 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信