Как разрешить приложению JAVA Web Start получить доступ к файловой системе MacOS Catalina, если оно запускается двойным щелчком по файлу JNLP? - PullRequest
1 голос
/ 17 октября 2019

В macOS Catalina мы сталкиваемся со следующей проблемой: открытие приложений Java Web Start ведет себя по-разному, когда приложение запускается двойным щелчком по файлу JNLP и когда оно запускается двойным щелчком по ярлыку, установленному на рабочем столе.

В первом случае (двойной щелчок по загруженному файлу JNLP) приложение открывается без прав доступа к файловой системе - попытка получить список каталогов в каталоге рабочего стола пользователя в коде JAVA всегда возвращает ноль. Пользователю не было предложено запрашивать какие-либо разрешения для доступа к файловой системе. Это не ожидаемое поведение.

Во втором случае (начиная с ярлыка на рабочем столе) пользователь сначала получает запрос о том, что приложение пытается получить доступ к файловой системе, и запрашивает разрешение. Когда пользователь разрешает приложению доступ к файлам - приложение правильно читает каталог рабочего стола пользователя. Это ожидаемое поведение.

Есть ли обходной путь для этого? Как мы можем заставить веб-запускать файловую систему доступа к приложениям на Catalina, если она запускается двойным щелчком по файлу JNLP (именно так приложение должно быть запущено хотя бы в первый раз)?

1 Ответ

0 голосов
/ 18 октября 2019

Я столкнулся с подобной проблемой при запуске устаревшего приложения .jnlp. Я смог обойти это, просто вызвав приложение из CLI (iTerm / Terminal / и т. Д.):

# javaws filename.jnlp

Основная причина в том, что macOS 10.15 (Catalina) теперь требует, чтобы приложения не от Apple былиспециально предоставлено разрешение «Полный доступ к диску». Проверьте это и это для деталей. Используя объяснение, я добавил / usr / bin / javaws (и другие двоичные файлы java, такие как java и appletviewer) в «Полный доступ к диску», но это не решило проблему.

На основе старая ветка , кажется, что если путь к приложению не находится в / Applications / (в этом случае java и javaws находятся в / System /, а не в / Applications /), то Full Disk Access нечесть. Поэтому вполне вероятно, что Apple должна предоставить исправление, позволяющее запускать эти приложения из пользовательского интерфейса.

...