在GWT中调用本机(C++)代码 我正在开发一个应用程序,它需要在DirectShow中调用一个本地C++代码来进行多媒体处理。我猜我不能使用JNI,因为GWT将代码转换成JavaScript。我确实在JWSI上查看了GWT站点上的类似帖子,但是找不到一个专门讨论调用C++代码的例子。来自GWTIT的主要内容是从Javascript调用Java代码。有人能介绍一下这一点或指导我学习教程吗?

在GWT中调用本机(C++)代码 我正在开发一个应用程序,它需要在DirectShow中调用一个本地C++代码来进行多媒体处理。我猜我不能使用JNI,因为GWT将代码转换成JavaScript。我确实在JWSI上查看了GWT站点上的类似帖子,但是找不到一个专门讨论调用C++代码的例子。来自GWTIT的主要内容是从Javascript调用Java代码。有人能介绍一下这一点或指导我学习教程吗?,gwt,Gwt,这段代码应该在哪里运行?当然不是在客户端。离大规模采用还差得远 GWT可以与JSNI接口,以便在GWT Java代码中编写本机JS代码,或者在框架处理RPC时与Java后端接口。即使没有GWT,至少在不久的将来,您也无法从浏览器中运行本机代码 一句话——如果不能在客户端用普通的Javascript实现,那么就不能在GWT中实现 您可以在后端使用本机代码,并通过Java后端类中的classic JNI调用它,然后如果它是GWT项目的一部分或不是GWT项目的一部分,会有什么区别?但听起来好像不是这样

这段代码应该在哪里运行?当然不是在客户端。离大规模采用还差得远

GWT可以与JSNI接口,以便在GWT Java代码中编写本机JS代码,或者在框架处理RPC时与Java后端接口。即使没有GWT,至少在不久的将来,您也无法从浏览器中运行本机代码

一句话——如果不能在客户端用普通的Javascript实现,那么就不能在GWT中实现


您可以在后端使用本机代码,并通过Java后端类中的classic JNI调用它,然后如果它是GWT项目的一部分或不是GWT项目的一部分,会有什么区别?但听起来好像不是这样。

首先,将在浏览器和服务器组件java service servlet中运行的客户端HTML/Javascript明确分开

如果我正确理解您的问题陈述,您需要UI来收集转码器的参数,并且转码器需要在Windows设备上运行

您可以查找任何简单的GWT应用程序,以了解如何在任何容器(目前可能是jetty)中为GWT应用程序提供服务,并处理基本的HTML表单输入。一旦服务器上有了所有参数,就需要弄清楚如何将从浏览器发布的这些参数从web服务器中运行的服务servlet委托给GWT应用程序。从这一点上讲,它是一个java应用程序,正在讨论本机进程问题


您可以使用各种方式将参数传递给本机directshow应用程序。最简单的解决方案是使用exec方法内联传递命令参数来启动应用程序。否则,您可以通过TCP套接字与正在运行的本机应用程序通信,或者使用JNI集成本机应用程序。这完全取决于您的架构设计,您希望采用哪种方法

谢谢你的及时回复!我正在开发一个独立的应用程序。我将所有代码放在GWT项目的client文件夹下,并在我自己的机器上的浏览器中运行。我主要做的是->1使用GWT开发应用程序的UI管理2使用Directshow开发视频处理功能。Native现在我需要将这两个链接起来,这就是我需要的地方帮助我希望这是尽可能简单的方式,所以如果有其他的方式来做这件事,我会很高兴地尝试它。从我得到的是,你建议我使用-> JavaScript调用java调用C++代码?如果你正在开发一个独立的应用程序,应该访问硬件GPU,GWT并不是最好的选择——它适用于在浏览器中运行的web应用程序,因此也适用于在沙箱中运行的web应用程序。正如Igor所建议的,听起来你走错了方向。那么你有什么建议?我已经有了GWT中的全部UI和用DirectShow在C++中编码的视频剪辑器?我不想再从头开始:下一次,在做出重大设计决策之前,请咨询您的同事和架构师。目前-就如何充分利用当前情况向他们咨询。我的意思是,我在本地运行应用程序要处理的视频在我的计算机上使用App Engine Dev Server我使用eclipse,所以我选择-以Web App的形式运行…因此从UIbrowser收集数据参数不是问题。我的观点是,既然GWT将代码转换为Javascript,我就不可能使用JNI?不,你不能使用JNI。但是,如果您的dll是在浏览器沙盒中运行的ActiveX对象,并且如果您可以使用javascript界面对其进行控制,那么您可以尝试使用JSNIC在GWT RPC调用的服务器上使用命令行参数执行directshow app.exe吗?在服务器上执行您的流程将是一种更快的原型制作方法,如果您有一个将命令行参数作为参数的exe,那么这将是一项15分钟的工作。没有问题:在Eclipse中创建一个示例GWT应用程序,并按原样运行。您将注意到一个带有按钮的WebStarter项目页面,单击该页面会向服务器发出RPC调用。以此为起点。将文本字段添加到页面,就像添加按钮一样,收集输入并将字符串发送到服务器,将字符串用作参数。您可以将其扩展为包含所有数据传输参数的POJO。这是非常基本的,应该是直截了当的,谷歌可以在这里帮助你。请接受任何一个答案并结束此问题。恐怕您仍然不明白。Pl 在您尝试任何GWT项目之前,请先轻松学习GWT基础知识,这将为您节省大量时间和精力。