Look at this link:
http://java.sun.com/j2se/1.4.2/docs/guide/awt/AWTChanges.html#headless
This option is being used when you are operating on a machine without graphics support (usually in a server configuration). You will use the option for example when you want to do some AWT/Swing operation on the server side (image manipulation). You want to check and see if you have graphics support on your server (on unix/linux run something like xcalc on the server).
Based on your information, it is your class that has problem and has nothing to do with graphics.



Daniel Watrous wrote:

Is there at least someone that could tell me where to find more
information about the option "JAVA_OPTS=-Djava.awt.headless=true"? What exactly is its purpose? Thanks in advance.


Daniel

On 5/6/05, Daniel Watrous <[EMAIL PROTECTED]> wrote:


Hello,

I have a web application that uses java.awt.Font objects to render
images.  The application will run in tomcat and that is where I have
done development.  When I first tried to run the application on a
Linux box with Tomcat 5.0.25 I got the following error:

java.lang.NoClassDefFoundError
       at com.words2walls.customquote.CustomQuote.getQuoteFontName(Unknown 
Source)
       at com.words2walls.webapp.filters.SessionQuoteFilter.doFilter(Unknown 
Source)

Here is the code call that throws the error:
   public String getQuoteFontName() {
       return QuoteFontType.getInstance(this.quoteFontCode).toString();
   }

And the class that is being called:
/*
 * QuoteFontType.java
*
* Created on April 15, 2005, 9:41 AM
*/

package com.words2walls.customquote;

import java.awt.Font;
import java.awt.FontFormatException;
import java.util.*;
import java.io.*;

import com.words2walls.customquote.exceptions.FontNotFoundException;

/**
* Type safe enumeration of available fonts
*
 * @author Daniel Watrous
*/
public class QuoteFontType {

   private static final String pathToWebapp = "C:\\Program
Files\\Apache Software Foundation\\Tomcat 5.0\\webapps\\words2walls";
   private static final String pathToPackage =
"\\WEB-INF\\classes\\com\\words2walls\\fonts\\";
   private String fontName;
   private int fontCode;
   private Font font;
   private static org.apache.log4j.Category cat =
           org.apache.log4j.Category.getInstance(QuoteFontType.class.getName());

   public static final QuoteFontType ADORABLE = new
QuoteFontType(1,"Adorable","adorable.ttf");
   private static final Map INSTANCES = new HashMap();

   static {
       cat.debug("Enter Static block to place fonts in INSTANCES Map");
       INSTANCES.put (ADORABLE.toInteger(), ADORABLE);
       cat.debug("Exit Static block with INSTANCES.size() = " +
INSTANCES.size());
   }

   /** Creates a new instance of QuoteFontType */
   private QuoteFontType(int code, String fontName, String filename) {
       // create a font from the font file
       try {
           File fontFile = new File (pathToWebapp+pathToPackage+filename);
           FileInputStream fis = new FileInputStream(fontFile);
           font = Font.createFont(Font.TRUETYPE_FONT, fis);
       } catch (Exception e) {
           throw new FontNotFoundException(e);
       }
       // set member variables
       this.font = font;
       this.fontCode = code;
       this.fontName = fontName;
   }

   public String toString() {
       return fontName;
   }

   public Integer toInteger() {
       return new Integer(fontCode);
   }

   public static QuoteFontType getInstance(int code) {
       return (QuoteFontType) INSTANCES.get(new Integer(code));
   }

   public Font getFont() {
       return font;
   }

}

After some googling I found that if I set an environment variable
"JAVA_OPTS=-Djava.awt.headless=true" that this error would go away.
I'm not sure why this is the case, but it worked.

I am now trying to test the application on a windows machine with
Tomcat 5.0.30 and I get the same error.  I have set a Windows XP
environment variable the same as mentioned above.  I have also added
the option to the Java tab of the Tomcat monitor under Java Options:.

What is the cause of this error?  Is there some way that I can make it
work on both Windows and Linux?  Thanks in advance.

Daniel




--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]







Reply via email to