java程序如何访问操作系统的功能? 这是使用JNI吗?
答案 0 :(得分:4)
当您的Java应用程序需要执行对本机代码(即Windows中的DLL)的调用时,将使用JNI。
JVM本身是用C / C ++编写的,因此每个实现都使用可用的OS API库进行SO调用(Windows的Win32 API)。
一次Java调用可能导致OS调用(或许多,或者没有,取决于JVM缓冲的I / O),因此JVM使用Java中的参数调用操作系统并将结果返回给程序。
如果您的应用程序需要访问操作系统,必须通过Java API,使您的程序可以使用某些操作系统功能,如文件,套接字,窗口。由于许多原因,许多OS功能不适用于Java应用程序。
通过外部产品或库提供一些特殊功能,如串行(COM),并行和蓝牙端口。这些产品/库附带了一个可用于您的程序的JAVA API,此API通过使用产品/库中包含的一些本机库来使用JNI进行OS调用。
如果您需要Java或外部产品中不具备的操作系统的特殊功能,请考虑创建本机库,创建包装它的JAVA API并使用JNI从API调用它。您(和其他)应用程序可以使用API来访问这些功能。
答案 1 :(得分:1)
最好从java.lang.Runtime
开始,或者更好的是java.lang.Process
。
根据您为操作系统调用的内容,您可能还对java.lang.management包感兴趣。