我发现java.*和javax.*是非法的(保留的)包名(在"OCA JavaSE7程序员我学习指南“一书中)。当我尝试创建包"java“并从它运行类时,我收到:
Exception in thread "main" java.lang.SecurityException: Prohibited package name: java但是当我从"javax“包运行class时,我没有收到任何错误。在docs.oracle.com上,我只找到了以下信息:
Packages in the Java language itself begin with java. or javax.所以..。它是不是"javax“的非法名称?也许它只在Java或更老版本的Java上是非法的?(我已经在JDK 1.6.0_43和1.7.0_25上尝试过了)
发布于 2013-07-20 23:41:43
javax.用于扩展(可能在JRE中),因此可以在这些包中定义类。在不受信任的上下文中,可以通过将javax.添加到package.definition安全属性(未选中)来禁用此功能。
java.之所以特别,是因为作为反微软的措施,ClassLoader会阻止那些包中的非引导类加载器。
https://stackoverflow.com/questions/17763834
复制相似问题