有没有办法将类/ jar文件的内容传递给JVM而不将它们显式保存在磁盘上?

时间:2014-02-03 20:19:12

标签: java jvm

假设我想阻止jar / class文件的轻微反汇编。

JVM从C ++应用程序启动,该应用程序可以解扰存储在其自己的可执行文件中的jar / class文件。有没有办法以某种方式将这些文件的内容流式传输到JVM而不将它们保存在磁盘上?

我正在寻找Windows和unix平台上的解决方案。

2 个答案:

答案 0 :(得分:1)

您可以创建一个ClassLoader,从任何地方获取其类数据。您甚至可以调用本机方法来获取类的字节代码。看看广泛使用的URLClassLoader,它可以从磁盘或网络上的文件或任何支持的URL获取它的类。

答案 1 :(得分:1)

JarInputStream班级Classloader上提供您所追求的内容,Docs

您还需要一些自定义类加载行为。可能需要创建一个URLClassloader实现,如果你走这条路,你也可以加载你的类。根据您的具体情况,使用{{1}}可能更简单。