gpt4 book ai didi

class - 如果 class.getProtectionDomain 返回 null 是什么意思

转载 作者:行者123 更新时间:2023-12-02 04:03:47 30 4
gpt4 key购买 nike

我有一个方法可以返回从中加载特定类的 jar。方法如下。
对于某些类,以下行返回 null

ProtectionDomain protectionDomain = c.getProtectionDomain();

我想了解它在什么情况下为空。代码编译所以我认为类在编译时是可见的,并且特定类所在的项目的依赖项也是编译时依赖项。

这是方法

  public static String jarFor(Class c) {
ProtectionDomain protectionDomain = c.getProtectionDomain();
CodeSource codeSource = protectionDomain.getCodeSource();
URL url = codeSource.getLocation();
String path = url.getPath();
if (Os.isWindows() && path.startsWith("/")) {
path = path.substring(1);
}
return URLDecoder.decode(path);
}

最佳答案

javadoc或者 java 代码本身表明 getProtectionDomain 可以返回 null。

public java.security.ProtectionDomain getProtectionDomain() {
SecurityManager sm = System.getSecurityManager();
if (sm != null) {
sm.checkPermission(SecurityConstants.GET_PD_PERMISSION);
}
java.security.ProtectionDomain pd = getProtectionDomain0();
if (pd == null) {
if (allPermDomain == null) {
java.security.Permissions perms =
new java.security.Permissions();
perms.add(SecurityConstants.ALL_PERMISSION);
allPermDomain =
new java.security.ProtectionDomain(null, perms);
}
pd = allPermDomain;
}
return pd;
}

关于class - 如果 class.getProtectionDomain 返回 null 是什么意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8793987/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com