webcamstudio v4l2loopback java linux awt x11

java - v4l2loopback - virtual webcam linux



Fake X11 pantalla? (7)

Tengo un programa Java usando AWT que me gustaría ejecutar en un sistema sin cabeza. La pantalla del programa no hace más que mostrar las estadísticas. Cuando el programa termina, sale. No hay interacción del usuario en la pantalla. El programa crea un archivo de salida que utilizo en mi sistema de compilación.

¿Hay alguna manera de hacer que el programa Java se ejecute sin una pantalla X11 configurada? ¿Puedo forzar a Java a ejecutar el programa sin intentar mostrar nada? No tengo acceso al código fuente (es solo el archivo .jar), así que no puedo hacer modificaciones en la fuente.

¿Alguna idea de cómo podría hacer que esto funcione?


He utilizado con gran éxito en el pasado las bibliotecas PJA , parece que ya no se mantienen, pero de nuevo, solo quiero ejecutar ...


También podría ejecutar Xvnc en baja resolución y profundidad de color.



La pregunta subyacente aquí es cómo ejecutar aplicaciones Java sin un servidor X; proporcionar un servidor X "falso" es solo una opción. En Java 1.4 y versiones posteriores, puede hacer lo siguiente:

java -Djava.awt.headless=true

Esto permite que las aplicaciones que usan AWT se ejecuten en sistemas sin cabeza incluso sin un servidor X.


Como lo menciona Charles Duffy, el método tradicional es decirle a Java que caiga sin cabeza.

Tenga en cuenta que siempre puede montar el contenedor en Eclipse y usar jad + jadclipse para ver lo que realmente hace, y quizás anular una clase si lo necesita al poner otro archivo de clase en "frente" de él en el classpath.

Una instalación que podría ser relevante si el programa usa Java2D es que las versiones más recientes de Java usan optimizaciones en el servidor X11 para renderizar más rápido. Esto solo puede ser una razón para dedicar un servidor X11 conectado a una tarjeta gráfica de alto rendimiento a su procesamiento de gráficos.


Puedes usar un vncserver.

vncserver :1001 export DISPLAY=localhost:1001 java..

Las ventajas adicionales son que puedes ver la interfaz gráfica de usuario usando vncserver ''por las dudas''


Pude obtener el modo sin cabeza en OpenJFX con los argumentos de línea de comando

-Dglass.platform=Monocle -Dmonocle.platform=Headless -Dprism.order=sw