Я установил Android Studio как flatpak и хочу настроить OpenJDK 11 для запуска модульных тестов (потому что я я использую robolectric, которому требуется Java 9+).
Насколько я понимаю, каталог / usr
занесен в черный список, поэтому я разрешил доступ к usr / lib / jvm
с помощью приложения FlatSeal .
Когда я пытаюсь запустить модульные тесты, я получаю такую ошибку: 'usr / lib / jvm / java11-openjdk-amd64' не является допустимым домом JRE
Я почти уверен, что каталог является допустимым домом JRE, поскольку при использовании оснастки Android Studio, он распознается, и тесты выполняются.
Я знаю, что это немного поздно, но у меня была такая же проблема, и я нигде не нашел решения. Наконец-то я понял, что после включения доступа /usr/lib/jvm
его можно найти внутри приложения flatpak по адресу /var/run/host/usr/ lib/jvm
.
Разрешить доступ к /usr/lib/jvm также можно через командную строку, используя
sudo flatpak override --filesystem=/usr/lib/jvm
для включения для всех приложений flatpak или
sudo flatpak override <идентификатор пакета> --filesystem=/usr/lib/jvm
, чтобы включить данный пакет.
Это по-прежнему не будет работать, если версия java хоста динамически связана (как это будет в большинстве случаев), а версия libc хоста отличается от версии в приложении flatpak.В этом случае ваш единственный вариант - использовать статически связанную версию java или найти хитрый трюк компоновщика, который свяжет исполняемый файл java хоста с libc хоста при использовании из приложения flatpak.
Вы можете установить OpenJDK в плоском пакете, который будет доступен по адресу /usr/lib/sdk/openjdk<версия>/jvm/
из приложения flatpak.
Для установки OpenJDK 11 используйте
flatpak install org.freedesktop.Sdk.Extension.openjdk11
Это невозможно сделать от имени пользователя root, поэтому не используйте sudo. При необходимости измените номер версии. Вам нужно будет перезапустить Android Studio / IntelliJ / ... , чтобы получить доступ к новой установке OpenJDK.
Однако это потребует дополнительного места на диске. Для меня это было чуть больше половины гигабайта. Кроме того, теперь у вас есть две версии Java, которые вам нужно будет обновить отдельно. Кроме того, для flatpak доступна только версия jdk для OpenJDK.