gpt4 book ai didi

java - JNI/JNA 与 Runtime.getRuntime().exec(String)?

转载 作者:行者123 更新时间:2023-12-02 06:26:17 24 4
gpt4 key购买 nike

据我所知,我可以在命令 shell 中执行的任何操作,都可以通过 JNI、JNA 或 Runtime.getRuntime().exec(String) 执行。那么什么时候使用哪个?

JNI/JNA 是否允许我与正在运行的 native 应用程序进行通信(进程间通信等),否则无法从命令 shell 执行该应用程序?或者只是 Runtime.getRuntime().exec(String) 是平台无关的,而 JNI/JNA 要求您知道您所在的平台才能使用它们?

最佳答案

简而言之,

  • JNI 和 JNA 允许在同一进程中使用 native
  • Runtime.exec(及其新 friend ProcessBuilder)启动新的外部应用程序。

由于每个都需要与主机操作系统和现有的 native 二进制文件(无论是库还是可运行的程序)合作,所以它们都不是平台无关的。

这三个都不允许与正在运行的外部应用程序进行通信。为此,您需要 inter-process communication机制,例如可以在共享内存、文件、管道或套接字之上实现。

关于java - JNI/JNA 与 Runtime.getRuntime().exec(String)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20499326/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com