之前我有这个问题,但问题仍未解决。运行下面的代码时,会显示消息“已发生JNI错误,请检查您的安装......”等。我已删除并重新安装了jdk,确保它是最新的。我重置变量PATH但仍然出现相同的错误。
package java;
public class javautilArrays {
public static void mian(String[] args) {
char[] copyFrom = {'d', 'd', 'c', 'a', 'f', 'f', 'e', 'n', 'a', 't', 'e', 'd'};
char[] copyTo = java.util.Arrays.copyOfRange(copyFrom, 2, 9);
System.out.println(new String(copyTo));
}
}
在控制台终端中,将显示以下消息:
Exception in thread "main" java.lang.SecurityException: Prohibited package name: java
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)
答案 0 :(得分:3)
错误显示“禁止包名称:java”,如果您查看代码顶部,则会看到package java
。这不是有效的包名,您必须更改它。
您提到的错误不在堆栈跟踪中。
答案 1 :(得分:2)
不要对变量,方法和包使用通用名称。 查看代码的第一行
package java;
您必须将包的名称更改为其他名称。 您没有提到您使用哪个IDE来开发程序,但如果您使用的是eclipse或netbeans,则必须重新创建项目并删除它。
在上面的代码中,您尝试向java包(本机安装)添加一个新类,由于Java不是OTF类型的编译器,因此不允许这样做。只需将包名称从java更改为其他名称即可。 如果您查看已附加的追溯,它会调用您的项目未知来源。
如果有效,请不要忘记接受这个答案。
祝你好运。伊曼
答案 2 :(得分:0)
将包名更改为其他名称。创建一个新包并将此类移动到该包。