我有这个C程序,我想从我的java代码调用,我有两个选项: -
首选哪种方法?它们的优点和缺点是什么?
答案 0 :(得分:2)
通过ProcessBuilder运行可执行文件的最大优势是最大程度的隔离:如果子进程崩溃或破坏内存,这不会影响您的应用程序。所有其他因素 - 内存利用率,性能,可维护性 - 都支持在本机代码的API上使用JNI层。
另外一个考虑因素可能是许可。如果C程序遵循GPL,那么JNI方法可能需要开源整个应用程序(我不是律师,请先咨询专业人员,然后才能在此领域得出结论)。