Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #9316

Re: ExceptionInInitializerError

From Lew <lewbloch@gmail.com>
Newsgroups comp.lang.java.programmer
Subject Re: ExceptionInInitializerError
Date 2011-10-30 08:45 -0700
Organization http://groups.google.com
Message-ID <21727861.871.1319989538099.JavaMail.geo-discussion-forums@prgt10> (permalink)
References <Xns9F8E6573E3F9Fjpnasty@94.75.214.39> <nospam-7ED1EB.10073030102011@news.aioe.org> <Xns9F8E726886779jpnasty@94.75.214.39>

Show all headers | View raw


Novice wrote:
> John B. Matthews wrote: 
> > Novice wrote:
> > 
> >> I'm getting an unexpected runtime error when I execute my applet on a
> >> webpage from a jar. I should note that I do NOT get this same error
> >> when I run this same applet in Eclipse, either as an applet or as
> >> application using Roedy Green's "Hybrid/switchhitter" technique.
> >> 
> >> This is the line that it doesn't like: 
> >> 
> >>        switch(FooConstants.DESIRED_FORMAT) {
> >> 
> >> The relevant line of FooConstants is: 
> >> 
> >>     public static final Formats DESIRED_FORMAT =
> >>     Formats.PARAGRAPH_FORMAT; 
> >> 
> >> And Format is defined as follows:
> >> 
> >> public enum Formats {
> >> 
> >>     /** Bulleted list. */ 
> >>     LIST_FORMAT, 
> >>     
> >>     /** Paragraph. */
> >>     PARAGRAPH_FORMAT
> >> }
> >> 
> >> 
> >> Can anyone tell me why I'm getting this error? Also, I'm curious to
> >> know why this error doesn't occur when I run the applet in Eclipse.
> > 
> > As suggested here, you may have re-factored FooConstants or Formats 
> > since the last full build:
> > 
> > <https://groups.google.com/forum/#!msg/comp.lang.java.programmer/NrVbkO
> > kDBsg/BtW0CQeuhDUJ> 
> > 
> 
> Thanks for the suggestion, John, but it didn't work. I did a clean and 
> rebuild of the project, then ran my Ant script to compile the code, jar 
> it, and send the jar to the server but I'm still getting the same error 
> in the same place when I execute the applet on a web page. The applet 
> continues to run just fine in Eclipse, both as an applet and an 
> application.
> 
> I did some googling looking for other reports of this error and found a 
> suggestion to put a try/catch around the problem code so I did that:
> 
>         try {
>         switch(FooConstants.DESIRED_FORMAT) {
>         case PARAGRAPH_FORMAT:
>             dataPanel.add(createScrollableBorderedTextAreaForParagraph
> (this.doc.getDescriptionParagraph(entryNumber), 
> this.doc.getDescriptionText()));
>             break;
>         case LIST_FORMAT:
>             dataPanel.add(createScrollableBorderedTextAreaForList
> (this.doc.getDescriptionSentences(entryNumber), 
> this.doc.getDescriptionText(), LIST_BULLET_CENTER_DOT));
>             break;
>         }
>         }
>         catch (Throwable t) {
>         	t.printStackTrace();
>         }
> 
> Then I ran the Ant script again. The behaviour changed fairly 
> dramatically after this change. When I try to run the applet in Firefox 
> 7, I get:
> 
>  java.lang.NoClassDefFoundError: Could not initialize class 
> com.foo.FooConstants
>  
> The applet will not display. However, when I do the same thing in Opera 
> 11.52, the applet DOES display, although the console shows the same 
> error. Ditto for Google Chrome: the applet displays but I get the error 
> in the console. 
> 
> FooConstants is definitely in the jar - I have a little jarViewer class 
> that I use to list the contents - so I'm not sure whether Java just isn't 
> seeing it or is having some kind of problem initializing it.

Java just isn't seeing it.  You have the ".class" file in the wrong subdirectory.

> I'm not sure what to try next because I don't really understand the 
> underlying error.

The underlying error is that 'FooConstants' is not in the correct place in the classpath.  It is not Java's fault.

Instead of providing us with a partial clue (that never contains the whole answer and sometimes contains none of it), put together a Simple, Self-Contained Compilable Example (SSCCE):

http://sscce.org/

What you will find is that the class 'FooConstants' is not in the directory location in the classpath that corresponds to its package.

Show us the source for 'FooConstants', please (no more snippets!) and in what directory it resides within the JAR ("jar tf jarfile | grep FooConstants" being a convenient way to figure that out).

http://sscce.org/

-- 
Lew

Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

ExceptionInInitializerError Novice <novice@example..com> - 2011-10-30 13:57 +0000
  Re: ExceptionInInitializerError "John B. Matthews" <nospam@nospam.invalid> - 2011-10-30 10:07 -0400
    Re: ExceptionInInitializerError Novice <novice@example..com> - 2011-10-30 15:14 +0000
      Re: ExceptionInInitializerError Stanimir Stamenkov <s7an10@netscape.net> - 2011-10-30 17:52 +0200
      Re: ExceptionInInitializerError Lew <lewbloch@gmail.com> - 2011-10-30 08:45 -0700
      Re: ExceptionInInitializerError Roedy Green <see_website@mindprod.com.invalid> - 2011-10-30 23:57 -0700
      Re: ExceptionInInitializerError Roedy Green <see_website@mindprod.com.invalid> - 2011-10-31 01:28 -0700

csiph-web