如何解决有没有一种方法可以使用由存储在RAM中的jar组成的类路径来构建JNI JVM?
我有一个使用JNI从Rust调用Java的应用程序。现在,我正在使用类路径初始化JVM,该类路径被硬编码到主目录下的树中的大量jar文件中(它们是使用maven appassembler收集的)。
我试图弄清楚如何将那些jar文件嵌入到二进制文件中。 Rust的include_bytes!
宏使将各种jar文件变成嵌入式数据对象变得非常容易。我写了一个ClassLoader
,我认为它可以使用各种RAM罐中的内容来defineClass
由它们实现的任何内容。我想我可以使用Thread.currentThread().setContextClassLoader(loader);
作为我的任何JNI调用的类加载器来激活它,尽管这似乎无法通过JNI FindClass
方法找到该类(这是我要解决的问题)不得不四处走动。
剩下的问题是它仍然是自定义的ClassLoader,因此要调用其构造函数,其.class
必须位于文件系统中的jar文件中以及JVM的类路径中。
是否有任何方法可以从RAM进行引导? (jar的内容将是一块内存,而不是文件系统中特定位置的文件)
经过重述:如何在JNI创建的JVM的类路径中包含基于RAM的jar(而不是基于文件系统的jar)?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。