Sat*_*Okh 7 java naming packages
我发现java.*和javax.*是非法(保留)包名的信息(在"OCA Java SE 7程序员I学习指南"一书中).当我尝试创建包"java"并从中运行类时,我收到:
Exception in thread "main" java.lang.SecurityException: Prohibited package name: java
Run Code Online (Sandbox Code Playgroud)
但是当我从"javax"包运行类时,我没有收到任何错误.在docs.oracle.com我发现只有信息:
Packages in the Java language itself begin with java. or javax.
Run Code Online (Sandbox Code Playgroud)
所以...它是"javax"非法名称吗?也许它仅在Java EE或旧版本的Java上是非法的?(我在JDK 1.6.0_43和1.7.0_25上尝试过它)
javax.用于扩展(可能在 JRE 中),因此确保可以在这些包中定义类。javax.IIRC,可以通过添加安全属性(未选中)在不受信任的上下文中禁用此功能package.definition。
java.很特殊,因为ClassLoader作为反 Microsoft 措施,阻止这些包中的非引导类加载器。