我使用了另一个问题中的一些代码来访问 Java 类加载器中的私有(private)字段“类”。这工作正常,但是当我将其移动到小程序时,它会因以下异常而变得困惑:访问被拒绝(java.lang.RuntimePermission accessDeclaredMembers)
。我已经做了一些搜索并尝试使用 PrivlegedExceptionAction 来跳过它,但它不起作用。所以我的问题是:是否可以绕过这个,如果不能,还有什么方法可以获取类列表?
反射代码:
final ClassLoader cLoader = getClass().getClassLoader();
final Field f = ClassLoader.class.getDeclaredField("classes");
AccessController.doPrivileged(new PrivilegedExceptionAction() {
public Object run() throws Exception {
f.setAccessible(true);
return null;}});
Vector<Class> classes = (Vector<Class>)f.get(cLoader);
cList.addAll(classes);
最佳答案
对小程序代码进行数字签名(然后让用户在出现提示时接受)以获得完全权限。
关于java - 如何绕过 accessDeclaredMembers 权限作为小程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12302230/