这行代码是什么意思....new URLClassLoader(new URL[0]

上面的代码是否检查我们(似乎)是否有足够的权限来运行这段代码。我想知道 new URLClassLoader(new URL[0],getClass().getClassLoader()); 的目的是什么 如果此代码抛出异常会发生什么,以及如果它抛出 Securityexception 如何授予权限


// 快速检查我们(似乎)是否有足够的权限运行。


        try {

            JVM jvm = new JVM();

            new URLClassLoader(new URL[0],getClass().getClassLoader());

            } catch(SecurityException e) {

            throw new InsufficientPermissionDetected(e);

        }

    }catch (BootFailure e) {

        e.publish(context, home);

    }


Cats萌萌
浏览 126回答 1
1回答

暮色呼如

我想知道 new URLClassLoader(new URL[0],getClass().getClassLoader()); 的目的是什么这意味着:创建一个新的URLClassloader从空的 URL 数组加载类/资源,并将此类类加载器作为父类。然后丢弃生成的类加载器对象。所以我认为这只是测试是否允许应用程序创建类加载器。班级JVM不是我认识的。我不知道那是什么。如果这段代码抛出异常会发生什么除了显而易见的事情,什么都不会发生。如果异常是 a ,SecurityException则将其包装起来并将其作为不同的异常抛出。否则异常传播。该类InsufficientPermissionDetected可能是 Hudson 或 Jenkins 类。如果是这种情况,请检查 Hudson 或 Jenkins 代码库的其余部分,看看它是如何处理异常的。[我如何] 如果抛出则授予权限SecurityException这取决于代码在什么平台上执行。如果您在非沙盒 Java JVM 上运行,您应该已经拥有权限……可以执行所有操作。如果您在沙盒 Java JVM 上运行,则必须由沙盒机制授予权限。例如,对于受信任的 JAR 文件:JAR 必须使用用户/用户的 JVM 信任的 CERT 进行签名。JAR 文件中的代码随后被允许根据生效的策略文件访问受控 API。如果您在 Android 上运行……不确定。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java