我想开发业务逻辑不应该打开的代码,我尝试了封装和RMI将代码保持在安全端,但任何人都可以使用反射获得它。有什么可能吗?
您可能希望尝试读取编码的.class文件,然后使用定制类装入器装入它
byte[] bytes = // read from encoded file and decode
ClassLoader cl = new ClassLoader() {
@Override
public Class<?> loadClass(String name) {
try {
return super.loadClass(name);
} catch (ClassNotFoundException e) {
return defineClass(name, bytes, 0, bytes.length);
}
}
};
Class clazz = cl.loadClass("my.Decoded");
Object o = clazz.getConstructor().newInstance();
Method action = clazz.getMethod("action");
action.invoke(o);