-
Créer une image jpeg
Bonjour à tous,
Voici mon problème:
En entré, j'ai une une série de coordonnées (x=..., y=...). En sortie, une image jpeg qui affiche les points correspondants.
Dans un premier temps, j'ai créé un JPanel puis je l'ai transformé en jpeg avec la méthode ImageIO.write. Tout fonctionne bien.
Sauf que j'ai besoin de lancer mon application sur un serveur distant. Du coup, j'ai l'erreur suivante:
Exception in thread "main" java.awt.HeadlessException
at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:159)
Je comprends le problème mais je ne sais pas quoi faire:
-Les solutions qui consiste à rediriger l'affichage sur ma machine ne sont pas possible.
- Dire à awt que je souhaite créer l'objet mais pas l'afficher...?
- Utiliser un outils tel que gnu-plot. Mais il n'est pas installer. Sur mon serveur, il n'y a même pas de compilateur C pour l'installer.
- Utiliser une autre solution...
Merci de votre aide.
-
En fait il faut que tu démarres la JVM avec une option particulière lui indiquant qu'il n'y a pas d'environnement graphique à disposition (à savoir pas de serveur X).
Tu peux procéder de deux façon pour ça
Soit lancer java avec l'option qui va bien
Code:
java -Djava.awt.headless=true
Soit spécifier ceci dans ton code (moins propre à mon gout)
Code:
System.setProperty("java.awt.headless", "true");
-
Salut sinok,
Merci pour ton aide. J'ai tout de suite essayé ton idée. Voilà le résultat que j'ai obtenu:
Exception in thread "main" java.awt.HeadlessException at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:159)
at java.awt.Window.<init>(Window.java:432)
at java.awt.Frame.<init>(Frame.java:403)
at java.awt.Frame.<init>(Frame.java:368)
at javax.swing.JFrame.<init>(JFrame.java:158)
J'ai fait une recherche et voici ce que j'ai compris:
java.awt.headless=true permet de tester le mode headless même quand tu as une sortie graphique. Par contre, cela ne permet pas de gérer une JFrame dans un environnement non graphique.
-
Pourquoi cherches tu à afficher une JFrame dans un environnement non graphique?
Ca n'a pas de sens.
Et puis pas besoin de JFrame pour générer une image normalement
-
Tout a fait. C'est ce que je viens de comprendre. Je peux créer un Graphics2D sans créer de JFrame.
Du coup mon problème est résolu.
Merci beaucoup.