线程"main"中的异常java.lang.SecurityException:禁止的包名:java.lang

5 java runtime-error

我是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.

Hen*_*ter 8

您无法将新内容放入java.lang包中.它由语言保留,因为这是核心Java内容已经存在的地方.实际上,java.lang默认情况下,在任何Java代码段中都会隐式导入包中的所有内容.

它包含"对Java编程语言设计至关重要的类".(来自文档).由于用户定义的类根据定义不能对语言的设计至关重要,因此禁止将内容放在那里.允许用户将代码放入java.lang包中也是一个问题,因为这会将在那里定义的任何包域内容暴露给用户.

只需更改您的包裹名称(几乎任何其他内容),您就可以开始了.按照惯例,软件包名称通常是小写的,但您可以使它适合您的项目.有关更多信息,请参阅软件包教程.

  • +1 ... @ user2529024你没有做任何事情,如果你想在循环之后在控制台使用,System.out.println(str)打印,并为范围声明`String str` (2认同)