生成C++包装器的工具,用于Java类。

5
据我所知,SWIG是用于将C++/C包装成Java的工具,而javah则是用于在C++中实现某些Java函数(也称本地函数)的工具。
是否有一种工具可以创建一个C++包装器以覆盖Java类,使得调用此C++包装器的用户不必担心Java,例如:
输入Java为

  class hw {  
    public  void hi() {  
      System.out.println("Hello World");  
    }  
  }  

工具输出hw.hh(和一些.c++文件),可以用作:

hw *h = new hw(/*JEnv*/ env);
      h->hi();

是否有可用的工具可以执行此操作?


你希望这个包装器来托管Java虚拟机吗?那可不是一件简单的事情。 - Ben Voigt
@Bgen Voigt:从我所读的内容来看,我认为这是很多样板代码...可能不是微不足道的,但可以通过工具完成。所有现有的工具都是以Java作为框架,C++代码作为库的方向,而我正在尝试做相反的事情...Java作为库,C++将在需要时调用它。我有一种感觉,可以使用Java反射API完成这种类型的工具! - vrdhn
2个回答

5

选项包括以下内容,按照您的支出升序排列。

  • 由您Java类的客户编写的手写JNI代码。
  • 由您编写的为您的类的客户编写的手写、JNI驱动包装器。
  • JACE生成的包装器。JACE是一个免费的工具。最后一个版本发布于2008年,不确定开发是否继续。
  • JunC++ion生成的包装器。这个商业库以最小的开发工作量产生最佳结果。它支持Java回调,使用C++类来实现Java接口。作者非常负责和友好。然而,它有一个价格标签,并且您需要确保部署成本。

2

看起来网站挂了..但好在我不是唯一遇到这个问题的人 (-: - vrdhn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接