Is it "javax" illegal(reserved) package name or not?
I have found information that java.* and javax.* are illegal(reserved) package names(in the book "OCA Java SE 7 Programmer I Study Guide"). When I try create package "java" and run class from it, I receive:
Exception in thread "main" java.lang.SecurityException: Prohibited package name: java
but when I run class from "javax" package I receive no errors. On docs.oracle.com I've found only information:
Packages in the Java language itself begin with java. or javax.
so... is it "javax" illegal name or not? Maybe it's illegal only on Java EE, or older versions of Java?(I've tried it on JDK 1.6.0_43 and 1.7.0_25)
javax.
is used for extensions (possibly within the JRE), so sure it is possible to define classes within those packages. IIRC, this can be disabled in untrusted contexts by adding javax.
to the package.definition
security property (not checked).
java.
is special because ClassLoader
prevents non-bootstrap class loader in those packages as an anti-Microsoft measure.