The reason is given in the JLS, section 8.1.3:
An inner class is a nested class that is not explicitly or implicitly declared static. Inner classes may not declare static initializers (�8.7) or member interfaces. Inner classes may not declare static members, unless they are compile-time constant fields (�15.28).
When you drop "static" from "static class One" it becomes an inner class and thus inelligible to have static members, like static member class Two. Note that it can't even have a static field or a static method:
Now are you really trying to use this construction, or do you just like shining a torch into the dark corners of
Java?