Java Native Interface(JNI)的使用

时间:2011-04-12 18:13:43

标签: java jvm java-native-interface

在Web应用程序开发的角度来看,JNI(或Java Native Interface)在什么情况下可以帮助我理解?

我确实读过一些文章,承诺JNI可以让你访问本地应用程序,如菜单栏/滚动条等,所以用户界面可以更吸引人......但是这些东西可以用其他技术而不是Java来完成。

我仍然无法找到JNI的实际用途。您是否曾在项目/应用程序中使用过JNI?为了什么?

2 个答案:

答案 0 :(得分:4)

如果需要从Java中调用一些低级语言(C,C ++,汇编程序)函数,JNI非常有用。许多项目使用JNI,例如:

  • JOGL(用于调用OpenGL的Java库,一个C库)
  • SWT(使用JNI调用本机窗口库的Java UI库,例如Linux上的GTK)

有一些实用程序可以自动生成JNI代码,例如SWIG,这可以大大减轻生成JNI包装器代码的麻烦(包括编写一些Java和一些底层语言)。

答案 1 :(得分:2)

它不应该用于Web开发,因为几乎所有你需要的东西都是用Java编写的 - 这也是一个糟糕的主意,因为它会让你的应用程序平台依赖。

它有时用于访问系统API,这是一个必须使用的旧DLL,而不会因为某些可怕的管理原因而重写。