Java sans Tête d'Exception après la mise -Djava.awt.headless=true
Je suis en utilisant:
Linux Debian 6,
Java 1.6.29 et
Tomcat 6
J'ai vu beaucoup de posts à ce sujet en expliquant que java.awt
nécessite X11 bibliothèques, etc.., mais ils ne sont pas de résoudre le problème.
Je set-Djava.awt.headless=true dans ma boîte et j'ai travaillé autour de le premier problème de la tête, maintenant je suis arriver:
java.awt.HeadlessException
java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:159)
java.awt.Window.(Window.java:432)
java.awt.Frame.(Frame.java:403)
javax.swing.JFrame.(JFrame.java:202)
org.jfree.ui.ApplicationFrame.(ApplicationFrame.java:65)
...
Je sais ce faisant, j'ai juste dit à java qu'il n'y a pas de moniteur (et en fait de l'exécution d'un java autonome programme pour vérifier si l'environnement est décapité il ne retour true
). Est-il donc rien à voir avec l'environnement Linux comme réglage de l'AFFICHAGE env variable?
Je vous remercie de votre aide,
Grâce.
oui exactement. Si vous remarquez la BarChartGenerator classe au début il s'est étendu à la classe ApplicationFrame. Maintenant ce n'est plus! qui fixe le X11 dépendance.
OriginalL'auteur mzereba | 2012-04-16
Vous devez vous connecter pour publier un commentaire.
Comme vous pouvez le lire dans http://java.sun.com/developer/technicalArticles/J2SE/Desktop/headless/, de nombreux composants sont affectés si un périphérique d'affichage, le clavier ou la souris n'est pas pris en charge. Des méthodes liées à la Toile, Panneau de configuration, et l'Image des composants n'ont pas besoin de jeter un HeadlessException parce que ces composants peuvent être donnés vide pairs et traités comme des composants légers.
Donc la JFrame est le composant de lancer la HeadlessException.
Si vous voulez générer des graphiques avec jfreechart dans une tête environnement, ce lien peut vous aider à: http://javaevangelist.blogspot.com.es/2010/11/creating-charts-on-headless-systems.html.
OriginalL'auteur jalopaba
ajouter ci-dessus, il fonctionne un régal 🙂
OriginalL'auteur Makky
Vous pourriez avoir besoin d'installer un serveur VNC (ou quelque chose de similaire), tel que discuté dans ce forum fil.
Addendum: au Lieu d'enregistrer l'image du graphique d'un fichier, écrire à la sortie du serveur de flux à l'aide de l'un des
writeChartAsPNG()
méthodes, comme l'a suggéré ici.c'est devenu maintenant un autre problème..je pense que c'est un problème de configuration du serveur pour l'écriture de fichiers temporaires..pourrait-il être?
Il pourrait certainement être; plus de ci-dessus.
OriginalL'auteur trashgod
Décoller tout s'étend de ApplicationFrame permettra de résoudre ce problème.
Dans la plupart des Tomcat environnements de déploiement ,nous avons l'habitude n'a pas de X11 Windows.
nous n'avons pas besoin d'un ApplicationFrame (JFram) qui utilise l'ancien AWT objets.
Mon exemple
modifications ->
C'est un travail pour moi , bonne chance!
OriginalL'auteur 潘曉葦
Merci pour votre réponse.
Depuis que vous m'avez donné que j'ai essayé de texte. Ne fonctionne toujours pas dans le sens que: est maintenant de ne pas jeter de l'exception, mais la création d'une image vide pour une raison quelconque.
Je suis donc passé de ceci:
à la suivante (se débarrasser de
extends ApplicationFrame
) et l'exemple que vous m'avez donné:dans le journal qu'il se plaint de
ImageIO.write(bufferedImage, "gif", new FileOutputStream(path+getFilename()));
donnant cette erreur (alors que le fichier est là!):La moindre idée?
OriginalL'auteur mzereba