Top-level classes cannot be declared static. It's not useful to be able to declare top-level classes static; what it means to do that is not defined in the Java language specification. So, why would you want to be able to declare a top-level class static, if it doesn't mean anything? The extra wordstatic would only confuse people. So it's a good thing that the Java compiler gives you an error if you try to do this.
Do you mean what static means when it is used on a nested class? Like this:
An instance of a non-static nested class (also called an inner class) exists in the context of an instance of the enclosing class; it can, for example, access the member variables of the instance of the enclosing class:
The difference between an inner class and a static nested class is that the latter exists independent of an instance of the enclosing class - so in a static nested class, you cannot access member variables of the enclosing class.
Top-level classes ofcourse don't have an enclosing class, so you don't need the static modifier for top-level classes to make the distinction.
Well, it's more of a matter of what makes sense. Just think about it. Static means that something is part of a class, not of an instance. An outer class can't be part of an instance or another class, so what sense does it make to say it's static or not?
Jesper beat me to it, and in more detail.
The mind is a strange and wonderful thing. I'm not sure that it will ever be able to figure itself out, everything else, maybe. From the atom to the universe, everything, except itself.