A maneira padrão de indicar que um pacote .deb
requer um ambiente de tempo de execução Java (a JVM, não o JDK) é especificar uma dependência em default-jre
ou default-jre-headless
(a primeira para programas com GUIs, a última se nenhuma GUI for necessária), com dependências alternativas nas versões apropriadas de java-runtime
( java6-runtime
se seu aplicativo usar Java 6 ou posterior, java7-runtime
para Java 7 ou posterior, etc.):
Depends: default-jre | java6-runtime
ou
Depends: default-jre-headless | java6-runtime-headless
etc.
Isso lida com todos os JREs fornecidos pelo Debian (ou derivados do Debian), e os JREs do Oracle se foram processados usando java-package
. default-jre
depende do JRE padrão ( OpenJDK 7 para o Debian 8 , OpenJDK 8 for Debian 9 ), portanto, se nenhum outro JRE estiver instalado, isso garante que um JRE seja instalado. Os vários pacotes do JRE fornecem java-runtime
variants dependendo do nível de suporte, portanto, dependendo do que significa que qualquer JRE compatível existente, adequadamente empacotado, será usado em vez de forçar o usuário a instalar outro JRE.
Se você realmente quiser dar suporte a qualquer JRE instalado, incluindo Oracle JREs descompactados e instalados manualmente, só poderá usar o acima na sub-rotina "Recomendados" do pacote e tentar executar java
no seu script de inicialização. Idealmente, você deve verificar a presença de um JRE no momento da instalação (em postinst
, mas certificando-se de não falhar na instalação se nenhum JRE for encontrado) e sempre que precisar executar java
- que pode ser complicado se o seu pacote contiver uma unidade de script ou systemd ou algo parecido (complicado no sentido de que não é óbvio como notificar o administrador de que algo está errado, de uma maneira que você pode ter certeza de que será percebido e compreendido).