Java win32库/ api

嗨是否有一个合适的Java win32库,例如,显示当前进程,找出进程已经采取的端口号等等? (或类似WMI库?)谢谢

看看JNA 。 它是一种100%纯Java方式与本机代码进行通信。

他们有一个名为Platform.jar的辅助库,它包含一些最常见的本机API。

虽然我知道它是什么,但我还没有使用过平台,所以我无法指出你在哪里可以找到你想要的东西。 但是根据我的全球JNA经验,这应该有所帮助

(回答结束)


对于那些想知道它是如何工作的人(它在他们的主页上有解释)……好吧,让我们说他们已经为你处理了原生部分,这样你就可以专注于java端。 主librairy(jna.jar)捆绑了许多本机库(.dll,.so,.dylib)用于主要的操作系统/体系结构和java端操作它们(这解释了jar的大小:~1 Mo)。

当您想要使用多个OS lib名称“A.dll”,“A.so”或“libA.dylib”时,其中包含以下内容:

int doSomething(char* aString ,byte* aByteArray, long* arraySize) 

只需编写以下内容,JNA将完成剩下的工作:

 public class LibAWrapper{ //tell JNA to link with native library Native.register("A"); //Type mapping in java public native int doSomething(String aString ,byte[] aByteArray, NativeLongByReference arraySize) } 

并使用它:

 new LibAWrapper().doSomething("Hello World",.... 

这意味着如果Platform.jar不适合您的需求,您应该很容易在本机库周围编写一个包装器

您可能会发现SIGAR很有用

JNA比JNI更容易使用,只是速度最慢。 我强烈推荐它: JNA

不用担心,你必须为你需要的win32 api调用编写自己的jni包装器。