假设我想阻止jar / class文件的轻微反汇编。
JVM从C ++应用程序启动,该应用程序可以解扰存储在其自己的可执行文件中的jar / class文件。有没有办法以某种方式将这些文件的内容流式传输到JVM而不将它们保存在磁盘上?
我正在寻找Windows和unix平台上的解决方案。
答案 0 :(得分:1)
您可以创建一个ClassLoader,从任何地方获取其类数据。您甚至可以调用本机方法来获取类的字节代码。看看广泛使用的URLClassLoader,它可以从磁盘或网络上的文件或任何支持的URL获取它的类。
答案 1 :(得分:1)
在JarInputStream
班级Classloader
上提供您所追求的内容,Docs
您还需要一些自定义类加载行为。可能需要创建一个URLClassloader
实现,如果你走这条路,你也可以加载你的类。根据您的具体情况,使用{{1}}可能更简单。