Frage

Ich habe ein Java-Programm AWT verwenden, die ich auf einem Headless-System ausgeführt werden sollte. Die Anzeige für das Programm tut nichts anderes, als Anzeige der Statistiken. Wenn das Programm beendet ist, verlässt es. Es gibt keine Interaktion mit dem Benutzer auf dem Display. Das Programm erstellt eine Ausgabedatei, die ich in meinem Build-System verwendet werden.

Gibt es eine Möglichkeit, das Java-Programm zu erhalten, ohne einen X11-Display konfigurierte laufen? Kann ich Java zwingen, das Programm ohne zu versuchen zu zeigen, etwas zu laufen? Ich habe keinen Zugriff auf den Quellcode (es ist nur .jar-Datei), so kann ich nicht Veränderungen an der Quelle.

Alle Gedanken, wie ich dies könnte zu arbeiten?

War es hilfreich?

Lösung

Die zugrunde liegende Frage ist, wie Java-Anwendungen ohne einen X-Server laufen zu lassen; ein „fake“ X-Server gelangen, ist nur eine Option. In Java 1.4 und höher, können Sie Folgendes tun:

java -Djava.awt.headless=true

Dies ermöglicht Anwendungen, die AWT verwenden auf Headless-Systeme auch ohne X-Server ausgeführt werden.

Andere Tipps

Xvfb tun kann, was man sich wünschen. Ich habe es selbst nicht verwendet, aber hier ist ein Link zu Wikipedia: http://en.wikipedia.org / wiki / Xvfb

Sie können einen vncserver verwenden.

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

Die zusätzlichen Vorteile ist, dass Sie tatsächlich die gui sehen können mit vncserver 'für alle Fälle'

Könnte auch Xvnc in einer niedrigen Auflösung und Farbtiefe ausgeführt werden.

erwähnt Wie Charles Duffy die traditionelle Methode ist Java zu sagen, ohne Kopf zu gehen.

Beachten Sie, dass Sie immer das Glas in Eclipse montieren und verwenden können jad + JadClipse, um zu sehen, was es tatsächlich der Fall ist, und vielleicht sogar eine Klasse überschreiben, wenn Sie benötigen eine andere Klasse-Datei in „Front“ in der Classpath setzen .

Eine Einrichtung, die relevant sein könnte, wenn das Programm Java2D verwendet, ist, dass neuere Java-Versionen Optimierungen in dem X11-Server schneller zu machen. Dies allein könnte ein Grund sein, einen X11-Server auf eine Hochleistungs-Grafikkarte auf den Grafikprozessor angebracht zu widmen.

Ich habe mit großem Erfolg in der Vergangenheit verwendet, um die PJA Bibliotheken, sie don ‚scheinen t mehr aufrechterhalten werden, aber dann wieder, nur will nur laufen ...

Ich konnte Headless Mode in OpenJFX mit den Befehlszeilenargumente bekommen

-Dglass.platform=Monocle -Dmonocle.platform=Headless -Dprism.order=sw
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top