Стандартный способ указать, что .Для пакета deb
требуется среда выполнения Java (JVM, а не JDK), чтобы указать зависимость от default-jre
или default-jre-headless
(первое для программ с графическим интерфейсом пользователя, последний, если графический интерфейс не требуется), с альтернативными зависимостями от соответствующих версий java-runtime
( java6-runtime
, если ваше приложение использует Java 6 или новее, ] java7-runtime
для Java 7 или новее и т. д.):
Depends: default-jre | java6-runtime
или
Depends: default-jre-headless | java6-runtime-headless
и т. д.
Это обрабатывает все предоставленные Debian JRE (или производные Debian) и Oracle JRE , если они обрабатывались с использованием java-package
. default-jre
зависит от JRE по умолчанию ( OpenJDK 7 для Debian 8 , OpenJDK 8 для Debian 9 , OpenJDK 11 для Debian 10 ), поэтому, если никакая другая JRE не установлена, это гарантирует установку JRE. Различные пакеты JRE предоставляют варианты java-runtime
в зависимости от их уровня поддержки, поэтому в зависимости от этого будет использоваться любая существующая совместимая JRE, упакованная соответствующим образом, вместо того, чтобы заставлять пользователя устанавливать еще одну JRE. .
Если вы действительно хотите поддерживать любую установленную JRE, включая вручную установленные, неупакованные JRE Oracle, вы можете использовать только вышеуказанное в разделе пакета «Рекомендует», а затем попробовать запустить java
из вашего сценарий запуска.В идеале вы должны проверять наличие JRE во время установки (в postinst
, но убедитесь, что вы не завершите установку, если JRE не найдена), и всякий раз, когда вам нужно запустить java
- что может быть сложно, если ваш пакет содержит модуль initscript, systemd и т.п. понял).