Estoy escribiendo una aplicación que aprovecha jsvc
para iniciar un servicio Java como daemon. Necesito usar algo como jsvc
porque mi aplicación utiliza puertos por debajo de 1024 y, sin embargo, me gustaría no ejecutarlo como root para que los archivos creados sean propiedad de otro usuario. También me gustaría mantener las dependencias y la configuración al mínimo para que todas las necesidades del cliente sean una JVM y el binario jsvc
instalado.No se puede encontrar la casa de Java
Sin embargo, parece que jsvc
tiene una captura importante; que no puede detectar la carpeta de inicio de Java en un sistema dado operativo Unix, que es muy frustrante:
$ ./startup.sh
Cannot locate Java home
he sido capaz de solucionar el problema en Ubuntu, al menos, estableciendo manualmente el directorio de inicio de JVM:
jsvc ... -home /usr/lib/jvm/default-java/ ...
¿hay alguna manera de determinar el directorio de inicio de Java dinámicamente a partir de una secuencia de comandos Bash para que pueda hacer este trabajo en la mayor parte Unix/Linuxes? Yo sería capaz de dormir mucho mejor por la noche haciendo algo como:
JAVA_HOME="$(...)"
jsvc ... -home "$JAVA_HOME" ...
... en lugar de la codificación dura para cada sistema operativo individual. ¿Hay alguna manera de que, dado un binario java
, pueda encontrar el directorio de inicio de su JVM/JRE?
posible duplicado de [¿Cuál es el objetivo correcto para la variable de entorno JAVA_HOME para una distribución Linux OpenJDK basada en debian?] (Http://stackoverflow.com/questions/663658/what-is-the-correct-target- for-the-java-home-envrionment-variable-for-a-linux-op) – paulsm4
No es un duplicado; Intento ubicar Java en mi casa genéricamente, no solo para distribuciones Debian sino también para Red Hat, OSX y otras Linux/Unixes. –
Lea el enlace SO. Especialmente las partes sobre "update-java-alternatives/update-alternatives". – paulsm4