我是Java的新手,我有一个程序返回以下错误,我完全无法弄清楚.我用Google搜索了一切.你们能帮助我吗?
package java.lang;
public class S1 {
public static void main(String[] args) {
for (int i=1;i<=1000;i++)
{
String str = "1" +i;
}
}
}
Run Code Online (Sandbox Code Playgroud)
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)
Run Code Online (Sandbox Code Playgroud)
我正在使用Eclipse,并正在使用java.lang该文件中的包S1.java.
您无法将新内容放入java.lang包中.它由语言保留,因为这是核心Java内容已经存在的地方.实际上,java.lang默认情况下,在任何Java代码段中都会隐式导入包中的所有内容.
它包含"对Java编程语言设计至关重要的类".(来自文档).由于用户定义的类根据定义不能对语言的设计至关重要,因此禁止将内容放在那里.允许用户将代码放入java.lang包中也是一个问题,因为这会将在那里定义的任何包域内容暴露给用户.
只需更改您的包裹名称(几乎任何其他内容),您就可以开始了.按照惯例,软件包名称通常是小写的,但您可以使它适合您的项目.有关更多信息,请参阅软件包教程.