title: Headless continuous integration with Jenkins
body: <p>I’m trying to set up Jenkins on a RackSpace ArchLinux Cloud Server, but I’ve been unable to.</p>
  
  <p>Whenever I try to access Jenkins site, I get this error:</p>
  
  <pre><code>AWT is not properly configured on this server. Perhaps you need to run your container with "-Djava.awt.headless=true"?
  
  java.lang.NullPointerException
      at sun.awt.X11FontManager.getDefaultPlatformFont(X11FontManager.java:779)
      at sun.font.SunFontManager$2.run(SunFontManager.java:428)
      at java.security.AccessController.doPrivileged(Native Method)
      at sun.font.SunFontManager.&lt;init&gt;(SunFontManager.java:371)
      at sun.awt.X11FontManager.&lt;init&gt;(X11FontManager.java:32)
      at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
      at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
      at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
      at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
      at java.lang.Class.newInstance0(Class.java:372)
      at java.lang.Class.newInstance(Class.java:325)
      at sun.font.FontManagerFactory$1.run(FontManagerFactory.java:80)
      at java.security.AccessController.doPrivileged(Native Method)
      at sun.font.FontManagerFactory.getInstance(FontManagerFactory.java:71)
      at java.awt.Font.getFont2D(Font.java:489)
      at java.awt.Font.getFamily(Font.java:1186)
      at java.awt.Font.getFamily_NoClientCode(Font.java:1160)
      at java.awt.Font.getFamily(Font.java:1152)
      at java.awt.Font.toString(Font.java:1649)
      at hudson.util.ChartUtil.&lt;clinit&gt;(ChartUtil.java:229)
      at hudson.WebAppMain.contextInitialized(WebAppMain.java:175)
      at winstone.WebAppConfiguration.&lt;init&gt;(WebAppConfiguration.java:897)
      at winstone.HostConfiguration.initWebApp(HostConfiguration.java:131)
      at winstone.HostConfiguration.&lt;init&gt;(HostConfiguration.java:73)
      at winstone.HostGroup.initHost(HostGroup.java:85)
      at winstone.HostGroup.&lt;init&gt;(HostGroup.java:45)
      at winstone.Launcher.&lt;init&gt;(Launcher.java:197)
      at winstone.Launcher.main(Launcher.java:398)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:601)
      at Main._main(Main.java:268)
      at Main.main(Main.java:96)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:601)
      at org.tanukisoftware.wrapper.WrapperJarApp.run(WrapperJarApp.java:394)
      at java.lang.Thread.run(Thread.java:722)
  </code></pre>
  
  <p>So, what do you think it might be?</p>
  
  <p>I’ve already tried setting JAVA_OPTS environmental variable, to no avail. I also tried executing Java with <code>-Djava.awt.headless=true</code>, or even setting it in conf/wrapper.conf as wrapper.app.parameter.3=-headless.</p>
  
  <p>Any idea how may I tackle this problem? I’m so new at this...</p>
  
  <p>Thanks in advance!</p>