我是 Java 新手,我有一个程序返回以下错误,我完全无法弄清楚。我用谷歌搜索了一切。你们能帮我吗?
package java.lang;
public class S1 {
public static void main(String[] args) {
for (int i=1;i<=1000;i++)
{
String str = "1" +i;
}
}
}
Exception in thread "main" java.lang.SecurityException: Prohibited package name: java.lang
at java.lang.ClassLoader.preDefineClass(Unknown Source)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
我正在使用 Eclipse,并且正在使用该包java.lang
在文件中S1.java
.
您无法将新内容放入java.lang
包裹。它由语言保留,因为核心 Java 内容已经驻留在其中。事实上,一切都在java.lang
默认情况下,在任何 Java 代码片段中都会隐式导入 package。
它包含“Java 编程语言设计的基础类”。 (从the docs http://docs.oracle.com/javase/6/docs/api/java/lang/package-summary.html)。由于根据定义,用户定义的类对于语言的设计来说并不重要,因此禁止您将内容放在那里。允许用户将代码放入java.lang
package 也会是一个问题,因为这会将其中定义的任何包域内容暴露给用户。
只需更改您的包名称(几乎可以更改为其他任何名称),您就可以开始了。按照惯例,包名称通常是小写的,但您可以将其命名为对您的项目有意义的任何名称。请参阅包教程 http://docs.oracle.com/javase/tutorial/java/package/packages.html了解更多。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)