error messages : Java Glossary


red triangle  error messages
The error messages that the Java compilers and runtime produce are cryptic and the true source of the error can be far from the technical problem the compiler is pointing at.

A compiler looks at source code from quite a different perspective that humans do. You gradually get to know what your compiler really means when it says baffling things like { expected.

Sometimes a single syntax error starts off an avalanche of baffling compiler error messages. As a general rule, look slightly earlier or later of where the compiler is complaining. Fix any problems there and recompile. Most of the time the other errors will disappear.

I repeat, don’t waste time trying to figure out arcane messages. Correct what you can and recompile. Most of the time the arcane ones will mysteriously disappear.

When you start using a compiler, it is a good idea to deliberately make some common errors and see what the compiler says. Then you can make a table to help you later when you inadvertently make that error. (That is how I created many of the entries in the tables run time error messages and compile time error messages.)

When you make an error, get a baffling error message and eventually figure out what it means, make a note to yourself to help in future when that error message appears again.

It also helps to have two or three compilers on tap. When you get a really baffling error message, try some other compilers. With three variants on the error message, you have extra clues what it really means. Jikes in particular offers additional insight since its error messages are quite different from Oracle’s. Conversely, if you use Jikes, Oracle’s messages can be enlightening.

This tables run time error messages and compile time error messages were constructed merging error messages from several compilers including Symantec Visual Café, IBM (International Business Machines) Visual Age, IBM Jikes, JBuilder 3 and various Sun JDKs (Java Development Kits). Please submit baffling messages from your favourite compiler. I also include run-time messages.

I make no attempt to keep track of which error messages came from which compilers. Take all advice with a grain of salt. There are many possible causes for any given error message. I would hope this is obvious, but only one of my listed conditions needs to be met for the error to occur, not all of them. Further, the appearance of an error message is no guarantee that any of the listed conditions apply. These are just hints as to what might be the matter.

Another general hint is to delete all class files and recompile. Sometimes the problem is caused by references to renamed or discontinued code. Until the class files are removed, references to them are still valid. You may be getting the old code instead of the new.

Don’t sweat every error message. When you correct some, the strange ones often mysteriously disappear. Only the authors of the compiler have any hope of understanding the chain of causality. Just fix what you can and recompile. If you have Jikes, you can fix just two three errors before recompiling in the hopes many cascaded errors will disappear.

For totally mysterious errors, look at your source code file with a hex viewer. There may be code way off screen to the right. There may be strange control characters embedded in your file.

If you don’t find the puzzling error message in thse tables run time error messages and compile time error messages tables, you can do two things:

  1. Ask me at email Roedy Green', showing me the code and the error message.
  2. Look up the message in a search engine, particularly Google. There is a good chance somebody has asked about it in a newsgroup at some time and received a public reply. Google has the Deja newsgroup archives indexed.
Please share your discoveries about the true meaning of various error messages with the world by emailing your findings to  email Roedy Green'so I can merge them into the tables.

If you first don’t find the error message. Skim the both tables for it. I may have filed it differently from the way you would. Use your browser find feature to look for key words in your error message. There is no totally obvious order in which to file them. It might be worth your while just to scan the entire list every once is a while to refresh your memory on what is in there.


There are also outright bugs in the various Java compilers and runtimes. Sun maintains a searchable list. You can also submit bugs and vote on which bugs you feel should be given highest priority. They also accept feature requests and gotchas as bugs.

Use search engines, Google Groups, the newsgroups such as and the Java Developer Connection web pages to see if others have reported a similar bug.

You can report bugs in Microsoft’s SDK (Software Development Kit)

If you think you have found a new bug, build a small test case that clearly demonstrates the bug. Most reported bugs are not bugs at all, but coding errors. If you can keep your example small enough, you will be much more convincing that you truly have found a bug. Ask a friend to test the code on another platform to help decide if the problem is with the compiler or the JVM (Java Virtual Machine) or a native library.

You can see the complete list of 300 odd Java error messages in file lib/tools.jar in member sun/tools/javac/resources/ Unfortunately, it contains only the raw text of the messages, not explanations of what the error messages mean or what can possibly cause the errors.

Finally, if you would just like to complain about the design of Java or its implementation, you can expound on the newsgroup or send email to

This page is posted
on the web at:

Optional Replicator mirror
on local hard disk J:

Canadian Mind Products
Please the feedback from other visitors, or your own feedback about the site.
Contact Roedy. Please feel free to link to this page without explicit permission.

Your face IP:[]
You are visitor number