为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Cats萌萌 2023-06-08 20:25:53
上面的代码是否检查我们(似乎)是否有足够的权限来运行这段代码。我想知道 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);    }
查看完整描述

1 回答

?
暮色呼如

TA贡献1853条经验 获得超9个赞

我想知道 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 上运行……不确定。


查看完整回答
反对 回复 2023-06-08
  • 1 回答
  • 0 关注
  • 125 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信