是否有工具集成Java和C++;?

是否有工具集成Java和C++;?,java,c++,integrate,Java,C++,Integrate,谢谢你阅读这个问题 我做的这个作业需要一个GUI作为前端,与用C++编写的后端代码集成。 我想用java编写这个前端GUI,作为它的跨平台特性和强大的图形组件 P>有没有一种好的方法可以集成java和C++? 谢谢看一看(Java本机接口)。Sun有一个在线帐户。怎么样 Thrift是一个用于可伸缩跨语言服务开发的软件框架。它将软件栈与代码生成引擎结合起来,构建了在C++、java、python、php、Ruby、erlang、perl、Haskell、Cype、CoaA、SimalTalk和

谢谢你阅读这个问题

我做的这个作业需要一个GUI作为前端,与用C++编写的后端代码集成。 我想用java编写这个前端GUI,作为它的跨平台特性和强大的图形组件

<> P>有没有一种好的方法可以集成java和C++? 谢谢

看一看(Java本机接口)。Sun有一个在线帐户。

怎么样

Thrift是一个用于可伸缩跨语言服务开发的软件框架。它将软件栈与代码生成引擎结合起来,构建了在C++、java、python、php、Ruby、erlang、perl、Haskell、Cype、CoaA、SimalTalk和OcAML之间有效和无缝地工作的服务。 效果很好。这是一种将C/C++绑定到多种语言的方法。我有经验,用C++和很少的悲伤交谈。结合使用Swig和Java。通过包括Java在内的许多示例,您可以非常快速地进行操作


但是我会研究将应用程序拆分为客户机/服务器体系结构,以将C++后端与java前端分开。您将避免C++/Java开发和集成的痛苦=尽管您必须根据需要在前端和后端之间实现一些通信协议(例如,基本套接字/webservice/HTTP+REST或可能的CORBA,它是Java固有的,专为跨语言通信而设计的)

如果你自己没有编写C++后端库,而是想使用第三方库,最好的选择是使用.< 在JNI上使用JNA的主要好处是,桥接代码都是用java编写的(而不是用本机语言C++编写)。这意味着您不必通过构建C++ JNI接口来复杂化构建过程,所有的接口工作都将以主项目的语言编写。

如果你自己写C++后端,那么其他任何选项都是同样适用的。

< P>假设你是后端组件在同一台机器上,你可以使用一个界面层,如其他人的描述:
  • JNI
  • JNA
  • 大口
  • 查姆比酒店
<>这些都要求你的C++后端在DLL中可用,通常为C函数和有时C++类提供java代理。所有这些都有一个学习曲线,还有一些工作可以启用代理

另一种方法是使用C++进程并使用< /P>与此进行通信。

  • 命令行
  • 标准输入/标准输出
如果您希望支持跨网络通信

  • 插座
  • 科尔巴
  • 网络服务
  • 节俭
这些也有一个学习曲线和一些设置成本

其中,命令行或stdin/stdout可能是用最少的精力和知识进行工作的最快方法。但是,它不能很好地扩展到大型接口,因为您必须将每条消息的输入和输出编码为文本

对于命令行方法,您使用命令行开关执行选项的C++进程,结果可以从进程标准输出或退出代码读取。 对于stdin/stdout,您启动进程,每个请求都被发送到进程的stdin,结果从stdout读取