Domanda

Ho un programma Java con AWT che vorrei eseguire su un sistema senza testa. Il display per il programma non fa altro che visualizzare le statistiche. Al termine, il programma termina. Non c'è interazione dell'utente sul display. Il programma crea un file di output che utilizzo nel mio sistema di generazione.

C'è un modo per far funzionare il programma Java senza un display X11 configurato? Posso forzare Java a eseguire il programma senza provare a visualizzare nulla? Non ho accesso al codice sorgente (è solo un file .jar), quindi non posso apportare modifiche al codice sorgente.

Qualche idea su come potrei farlo funzionare?

È stato utile?

Soluzione

La domanda sottostante qui è come eseguire le applicazioni Java senza un server X; fornendo un " fake " X server è solo un'opzione. In Java 1.4 e versioni successive, puoi fare quanto segue:

java -Djava.awt.headless=true

Ciò consente alle applicazioni che usano AWT di funzionare su sistemi senza testa anche senza un server X.

Altri suggerimenti

Xvfb può fare quello che chiedi. Non l'ho usato da solo, ma ecco un link a wikipedia: http://en.wikipedia.org / wiki / Xvfb

Puoi usare un vncserver.

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

Il vantaggio aggiuntivo è che puoi effettivamente visualizzare la GUI usando vncserver 'just in case'

Potrebbe anche eseguire Xvnc a bassa risoluzione e profondità di colore.

Come menzionato da Charles Duffy, il metodo tradizionale è dire a Java di andare senza testa.

Nota che puoi sempre montare il vaso in Eclipse e usare jad + jadclipse per vedere cosa fa effettivamente, e forse anche sostituire una classe se necessario inserendo un altro file di classe in " front quot; di esso nel percorso di classe.

Una funzione che potrebbe essere rilevante se il programma utilizza Java2D è che le versioni più recenti di Java utilizzano le ottimizzazioni nel server X11 per eseguire il rendering più velocemente. Questo da solo potrebbe essere un motivo per dedicare un server X11 collegato a una scheda grafica ad alte prestazioni all'elaborazione grafica.

Ho usato con grande successo in passato le PJA , che don sembra non essere più mantenuto, ma poi, voglio solo correre ...

Sono stato in grado di ottenere la modalità senza testa in OpenJFX con gli argomenti della riga di comando

-Dglass.platform=Monocle -Dmonocle.platform=Headless -Dprism.order=sw
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top