Window 使用 java 进行操作

Window manipulation using java

我想制作一个程序,能够根据用户输入的命令(最好是通过语音,但...婴儿步骤)来操纵桌面。类似于 Windows 语音识别或 Cortana。

我想让它尽可能易于使用和设置等。因此,我计划在 Java 中编写它,这样它就可以跨平台,并且尽可能简单用户可能。

在进一步了解我将如何处理之后,我看到这里 (Manipulating windows from other applications in Java) 提到我应该使用 JNI。

我现在想知道(如顶部评论中所述)如果我切换到 C++ 是否会更容易,因为使用 JNI 可能会抵消 Java 的跨平台功能优势?

或者如果可能的话,是否可以让程序 select 根据操作系统自动使用适当的 JNI 类?

简而言之:JNI 是否否定了 Java 跨平台兼容性的好处?

抱歉,如果这个 post 有点令人困惑。我有很多问题,所以这看起来有点乱。

许多特定于操作系统的任务无法独立于平台完成。但是 Java 已经做了很多并且 JNI 也允许你做的是你可以为不同的平台使用不同的本地二进制文件 - 并且可能只有一个 Java API 来使用所有平台-独立。

使用 C++ 的缺点是您需要有多个可执行文件。使用 Java 你可以只有 1 个加载不同的本机代码。

尽管如果您需要大量不同的本机代码来实现您的想法,也许直接使用一种绑定到所有必需的本机 API 的语言仅针对一个平台实现它会更容易。像 Windows 的 C# 和其他平台的其他东西?