JNI错误已经发生,我刚刚删除并重新安装了jdk

时间:2015-08-29 02:46:59

标签: java

之前我有这个问题,但问题仍未解决。运行下面的代码时,会显示消息“已发生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)

3 个答案:

答案 0 :(得分:3)

错误显示“禁止包名称:java”,如果您查看代码顶部,则会看到package java。这不是有效的包名,您必须更改它。

您提到的错误不在堆栈跟踪中。

答案 1 :(得分:2)

不要对变量,方法和包使用通用名称。 查看代码的第一行

package java;

您必须将包的名称更改为其他名称。 您没有提到您使用哪个IDE来开发程序,但如果您使用的是eclipse或netbeans,则必须重新创建项目并删除它。

在上面的代码中,您尝试向java包(本机安装)添加一个新类,由于Java不是OTF类型的编译器,因此不允许这样做。只需将包名称从java更改为其他名称即可。 如果您查看已附加的追溯,它会调用您的项目未知来源。

如果有效,请不要忘记接受这个答案。

祝你好运。

伊曼

答案 2 :(得分:0)

将包名更改为其他名称。创建一个新包并将此类移动到该包。