Java:URLClassLoader 将加载的类保存在 Temp 目录中

标签 java classloader temp urlclassloader

我正在尝试使用 URLClassLoader 从 Web 加载 jar 文件,一切正常,但所有加载的类都保存在 Windows 临时目录中,并且可以复制以进行反混淆,直到我调用 classLoader.close(); 这反过来会导致程序 ClassNotFoundException

我可以在不保存到磁盘的情况下加载类吗?

(仅内存) 另一种解决方案是加密 jar 类,并编写自定义 ClassLoader 来解密类,但我没有找到任何示例。

我试图寻找关于这个主题的文档或文章,but found nothing :(

请告诉我是否可以实现以及我可以在哪里获取有关该主题的 Material ?谢谢!

最佳答案

您确实意识到,任何有权访问您正在运行代码的机器的人总能获得执行自定义类加载的代码,对吧?这意味着他们可以简单地反编译该类本身并使其写出解密的类,从而使整个练习变得毫无意义。诚然,大多数人不知道该怎么做,但这是可能的。

我的建议是混淆代码,如果你真的必须这样做的话。担心别人会控制你的库不会让你走得太远,因为你几乎无法保护它不被反编译,除非你使用混淆代码结构,这会混淆反编译器(或功能 jad 之类的不支持,因此导致它们产生严重损坏的反编译代码)。

任何具有足够知识和适当动机的人都会找到一种方法来做到这一点。

关于Java:URLClassLoader 将加载的类保存在 Temp 目录中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22611364/

相关文章:

git - 是否可以使用 git 应用临时更改以进行测试

java - 如何正确使用 ClassLoader.getResources()?

Java 类加载器困惑

java - 为什么主线程没有终止

java - 如何为java应用程序创建安装程序包以及在mysql中创建的数据库

java - 如何对 Java 程序进行沙箱处理

java - 将文件临时存储在tomcat的side temp文件夹中

SQL Server : Query Temporary Tables in new query windows

java - 使用 apache poi 读取 excel - Hashmap、ArrayList

显示信息的 Java Swing 小部件