Your class comments indicate a different purpose than your class code,
but assuming a connection in your mind, code something like the
following might be helpful to you:


public class Fonts {
  public static Font [] getFonts() {
    return GraphicsEnvironment.getLocalGraphicsEnvironment().getAllFonts();
  }

  public static String [] getFontNames() {
    Font [] fonts = getFonts();
    String [] fontNames = new String [fonts.length];
    for (int i = 0; i < fonts.length; i++) {
      fontNames[i] = fonts[i].getFontName();
    }
    return fontNames;
  }

  public static String [] getFontFamilies() {
    Font [] fonts = getFonts();
    String [] fontFamilies = new String [fonts.length];
    for (int i = 0; i < fonts.length; i++) {
      fontFamilies[i] = fonts[i].getFamily();
    }
    return fontFamilies;
  }

  public static String [] getNames() {
    Font [] fonts = getFonts();
    String [] names = new String [fonts.length];
    for (int i = 0; i < fonts.length; i++) {
      names[i] = fonts[i].getName();
    }
    return names;
  }

  public static void main(String [] params) {
    String [] names = Fonts.getNames();
    for(int i = 0; i < names.length; i++) {
      com.crackwillow.log.StdOut.log("fonts",names[i]);
    }
  }
} ///;-) Michael McGrady

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]
> 
> 


-- 
"You can lead a horse to water but you cannot make it float on its back."
~Dakota Jack~

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

Reply via email to