{"id":25,"date":"2003-07-30T22:49:03","date_gmt":"2003-07-30T21:49:03","guid":{"rendered":"https:\/\/arliguy.net\/2003\/07\/30\/applications-java-serveur-necessitant-un-serveur-x\/"},"modified":"2011-12-17T23:26:46","modified_gmt":"2011-12-17T22:26:46","slug":"applications-java-serveur-necessitant-un-serveur-x","status":"publish","type":"post","link":"https:\/\/arliguy.net\/2003\/07\/30\/applications-java-serveur-necessitant-un-serveur-x\/","title":{"rendered":"Applications Java serveur n\u00e9cessitant un serveur X"},"content":{"rendered":"

Comment se passer d\u2019un serveur X pour une application java qui en veut un alors qu\u2019elle tourne sur un serveur qui n\u2019est pas sens\u00e9 en avoir : vous me suivez ?<\/p>\n

Des applications java peuvent avoir besoin d\u2019un serveur X pour faire du rendu de dessin. C\u2019est le cas par exemple en cas d\u2019utilisation de la biblioth\u00e8que de rendu de graphiques JChart<\/a> ou avec JasperReport<\/a>. On aura par exemple une stacktrace du genre :<\/p>\n

java.lang.InternalError\r\n\r\nCan't connect to X11 window server using ':0.0' as the value of the DISPLAY variable.sun.awt.X11GraphicsEnvironment::initDisplay (native)\r\n\r\nsun.awt.X11GraphicsEnvironment::<clinit> ( X11GraphicsEnvironment.java: 134 )\r\n\r\njava.lang.Class::forName0 (native)\r\n\r\njava.lang.Class::forName ( Class.java: 141 )\r\n\r\njava.awt.GraphicsEnvironment::getLocalGraphicsEnvironment ( GraphicsEnvironment.java: 62 )\r\n\r\nnet.sf.jasperreports.engine.util.JRGraphEnvInitializer::initializeGraphEnv ( JRGraphEnvInitializer.java: 58 )\r\n\r\n...<\/pre>\n

Cependant, sous les serveurs de production, on lance rarement un serveur X. Il faut donc utiliser soit :
\n– un serveur virtuel
xvfb<\/a>
\n– l\u2019option -Djava.awt.headless=true<\/strong> [1] si on utilise Java 1.4 ou sup\u00e9rieur<\/p>\n

PS : Cette astuce a \u00e9t\u00e9 trouv\u00e9e dans la doc de jCharts<\/a><\/p>\n

[1] ou dans le code avec System.setProperty(“java.awt.headless”,”true”) ;<\/p>\n","protected":false},"excerpt":{"rendered":"

Comment se passer d\u2019un serveur X pour une application java qui en veut un alors qu\u2019elle tourne sur un serveur qui n\u2019est pas sens\u00e9 en avoir : vous me suivez ? Des applications java peuvent avoir besoin d\u2019un serveur X pour faire du rendu de dessin. C\u2019est le cas par exemple en cas d\u2019utilisation de … Continuer la lecture de Applications Java serveur n\u00e9cessitant un serveur X<\/span> →<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"footnotes":""},"categories":[4,13],"tags":[23,9,26],"_links":{"self":[{"href":"https:\/\/arliguy.net\/wp-json\/wp\/v2\/posts\/25"}],"collection":[{"href":"https:\/\/arliguy.net\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/arliguy.net\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/arliguy.net\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/arliguy.net\/wp-json\/wp\/v2\/comments?post=25"}],"version-history":[{"count":0,"href":"https:\/\/arliguy.net\/wp-json\/wp\/v2\/posts\/25\/revisions"}],"wp:attachment":[{"href":"https:\/\/arliguy.net\/wp-json\/wp\/v2\/media?parent=25"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/arliguy.net\/wp-json\/wp\/v2\/categories?post=25"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/arliguy.net\/wp-json\/wp\/v2\/tags?post=25"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}