Faux affichage X11?
J'ai un programme Java en utilisant AWT qui je tiens à exécuter sur un système bancal. L'affichage pour le programme ne fait rien d'autre que d'afficher les statistiques. Lorsque le programme est terminé, il la quitte. Il n'y a aucune interaction de l'utilisateur sur l'écran. Le programme crée un fichier de sortie qui je utiliser dans mon système de construction.
Est-il un moyen pour obtenir le programme Java pour fonctionner sans l'affichage X11 configuré? Puis-je la force de Java pour exécuter le programme sans essayer d'afficher quoi que ce soit? Je n'ai pas accès au code source (c'est juste .fichier jar), donc je ne peux pas apporter des modifications à la source.
Des idées sur comment je pourrais obtenir que cela fonctionne?
OriginalL'auteur ashchristopher | 2009-01-30
Vous devez vous connecter pour publier un commentaire.
La question sous-jacente ici est de savoir comment exécuter des applications Java sans un serveur X; la fourniture d'un "faux" serveur X est seulement une option. Dans Java 1.4 et le haut, vous pouvez effectuer les opérations suivantes:
Cela permet aux applications qui utilisent l'AWT pour s'exécuter sur des systèmes, même sans tête, sans un serveur X.
Notez que ce n'est pas forcément suffisante. Par exemple, même avec ce drapeau, j'ai le trace de la pile pour un programme qui essaie d'utiliser un JFrame: Exception in thread "main" java.awt.HeadlessException à java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:159) at java.awt.De la fenêtre.<init>(Fenêtre.java:431) à java.awt.Cadre.<init>(Frame.java:403) at javax.swing.JFrame.<init>(JFrame.java:207)
Je suis d'accord que ce n'est pas forcément suffisante. Otoh, que, je voudrais également appeler le bon endroit pour commencer.
OriginalL'auteur Charles Duffy
Xvfb pouvez faire ce que vous demandez. Je n'ai pas utilisé moi-même, mais voici un lien vers wikipédia: http://en.wikipedia.org/wiki/Xvfb
Hhhm, la java -Djava.awt.headless=true solution proposée ci-dessous fait beaucoup plus de sens que de l'installation de certains 3rd party software.
Ouais, si cela fonctionne, cela semble être une bien meilleure idée.
Xvfb est à peine 3ème partie logiciel - c'est une partie d'un standard X11.
Yup. C'est certainement la bonne chose à faire lorsque
-Djava.awt.headless=true
ne fonctionne pas. Je dirais que-Djava.awt.headless=true
est le bon endroit pour commencer, cependant, étant donné que les ressources de la consommation des différences.OriginalL'auteur Peter B. Bock
Vous pouvez utiliser un vncserver.
L'avantage est que vous pouvez réellement voir le gui
à l'aide de vncserver "au cas où"
OriginalL'auteur vrdhn
Pourrait également exécuter Xvnc en basse résolution et profondeur de couleur.
OriginalL'auteur Joshua
Comme mentionné par Charles Duffy la méthode traditionnelle est-à-dire de Java pour aller sans tête.
Notez que vous pouvez toujours monter le pot dans de l'Éclipse et l'utilisation de jad+jadclipse pour voir ce qu'il fait réellement, et peut-être même remplacer une classe, si vous avez besoin d'en mettre une autre classe-fichier en "première" dans le classpath.
Une installation qui pourrait être pertinente si le programme utilise Java2D est que les nouvelles versions de Java utilisation des optimisations dans le serveur X11 pour rendre plus rapide. Ce seul fait pourrait être une raison de consacrer un serveur X11 attaché à une haute performance de la carte graphique de votre traitement graphique.
OriginalL'auteur Thorbjørn Ravn Andersen
J'ai utilisé avec grand succès dans le passé, le PJA bibliothèques, ils ne semblent plus être maintenu, mais là encore, tout simplement souhaitez exécuter...
OriginalL'auteur webclimber
J'ai été en mesure d'obtenir headless mode dans OpenJFX avec les arguments de ligne de commande
OriginalL'auteur Matthew Molloy