使用java

时间:2015-09-01 09:57:43

标签: java c++ java-native-interface cross-platform

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

我想尽可能简单地使用和设置等。出于这个原因,我计划用Java编写它,以便它是跨平台的,并且对用户来说尽可能简单。

在进一步研究如何进行此操作之后,我在这里看到(Manipulating windows from other applications in Java)我应该使用JNI。

我现在想知道(如最高评论中所述)如果我转换到C ++会更容易,因为使用JNI可能会否定Java的跨平台功能优势吗?

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

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

很抱歉,如果这篇文章有点令人困惑。我有很多问题,所以这看起来有点像。

1 个答案:

答案 0 :(得分:0)

许多操作系统特定任务无法独立于平台完成。但是Java已经做了很多事情而JNI允许你做的是你可以为不同的平台提供不同的本地二进制文件 - 可能还有一个Java API可以使用所有这些独立于平台的版本。

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

虽然如果你需要很多不同的本机代码来实现你的想法,也许更容易直接用一种绑定到所有必需的本机API的语言在1个平台上实现它。就像Windows的C#和其他平台的其他东西一样?