Создайте Flatpak для самообновляющегося Java-приложения

Я хочу изолировать Java-приложение в среде Flatpak. Обычно оно работает при установке приложения в каталог /app.

Проблема в том, что приложение использует install4j и пытается выполнить самообновление, но /app доступен только для чтения во время выполнения (при выполнении запуска Flatpak...).

Есть ли способ сделать /app чтение и запись или есть другой каталог, в который я мог бы установить приложение?

Я думаю, что --filesystem=xdg-something в Finish-args — это начало ответа, но каталог недоступен во время сборки (при запуске Flatpak-Builder).

Не знаю, почему за него проголосовали отрицательно. Это реальная вещь, которую я пытаюсь сделать, должно быть, там есть автоматическое обновление приложения в плоском пакете?

izissise 07.06.2024 11:51
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
1
52
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В качестве обходного пути я создал сценарий-оболочку, который сначала копирует приложение в кеш, прежде чем запускать его.

#!/bin/bash

if [ ! -d "$XDG_CACHE_HOME"/workdir ]; then
    cp -r /app/data/ "$XDG_CACHE_HOME"/workdir
fi

exec "$XDG_CACHE_HOME"/workdir/app "$@"

Это работает для моего варианта использования

Другие вопросы по теме