【问题标题】:How to call Dll method from JSNI to use in GWT web application?如何从 JSNI 调用 Dll 方法以在 GWT Web 应用程序中使用?
【发布时间】:2012-06-20 12:10:54
【问题描述】:

我有一个 GWT 网络应用程序。

它调用另一个类的方法(使用JSNI方法)。

但是我想从那个类中调用一个 dll 方法...我该怎么做呢?

public class external_class {
public native void shows()/*-{window.alert("hello");}-*/;
}

在 GWT Web 应用程序中调用类似

external_class obj = new external_class();
            obj.shows();

如果我在 dll 文件中定义了 show() 方法,如何调用它? 或者 如何通过 JSNI 从 GWT 应用程序中直接调用 dll 方法?

请给我一个解决方案....

【问题讨论】:

  • 您似乎将 JSNI 与 JNI 混淆了。尽管语法相似,但 GWT 编译为 javascript 并在另一台机器上运行这一事实使其无法实现。

标签: java visual-c++ gwt dll jsni


【解决方案1】:

您不能在 GWT 中调用 DLL。 GWT 将 Java 代码编译为在 Web 浏览器中运行的 Javascript 代码。 Javascript不能直接调用DLL,如果你想用DLL做点什么我建议你看看浏览器插件。

在浏览器插件中,您可以包含您的 dll(仅限 windows)并让您的 javascript 调用该插件。

【讨论】:

  • 我可以从我的应用程序中加载一个 jar 文件(其中包含一个已经从中调用 DLL 的小程序)...?还是使用 JNSI 方法从 applet(jar 内)调用方法?
【解决方案2】:

在我看来,您似乎需要使用 Applet 和 jnlp 来加载本机库。从那里您可以使用 JSObject 或 GWT-AI 之类的库在 GWT 和小程序之间进行通信(我个人只是通过手,我只用过几次 GWT-AI)。我相信对于小程序方面,您可以使用 JNA 进行绑定。

如果这没有意义,或者听起来有点像胡言乱语,您可能需要寻求帮助,在 Java 和本机库之间引入很多问题可能会出错,您可能需要更专业的帮助才能在这方面取得实际进展,这很棘手。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-09
    • 1970-01-01
    • 2017-01-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多