如何解决JNI加载库不只一次
| 如这里提到的 防止Java多次加载库 一个库只被加载一次。 现在我的问题是,我想多次不止一次地加载相同的libray。 (System.load命令的作用与loadlibrary命令相同)。 知道我可以使用哪个命令,或者我怎么做? 最好的祝福, 斯特凡解决方法
我很确定这不是Java限制,而是大多数操作系统的设计。以我的经验,Windows / Linux / Solaris不允许多次加载同一库。您可能需要修改您不想修改的C ++。如果您无法控制该代码,则可能必须使用其他解决方案,其中涉及为要加载的DLL的每个副本执行/生成新进程并通过管道/套接字进行通信。
,感谢basszero的回答,如果我想加载相同的dll muliple时间,我真的必须启动新进程。我现在要做的是
一个跨越新流程的主要课程
一类加载dll
实现此目的的技术是ProcessBuilder。这是一个小的编码示例:
ProcessBuilder pb = new ProcessBuilder( \"java\",\"Mainclass\");
String filepath = \"C:\\\\{..}\\\\bin\\\\\";
File directory = new File(filepath);
pb.directory(directory);
try {
Process p = pb.start();
p.waitFor();
InputStream is = p.getInputStream();
int c;
while((c = is.read()) != -1){
sb.append((char)c);
}
} catch (Exception e) {
e.printStackTrace();
}
这当然是工作的分配,因为我必须以某种方式在进程之间交换对象,同步它们,等等……:-(
如果有人看过我的菜谱,我会建议他编辑他的C ++,在我看来,这是不可能的。
问候,
斯特凡
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。