我如何调用Mozilla Rhino的Javascript中的C++

How do I call on C++ from Mozilla Rhino's Javascript

本文关键字:Rhino Javascript 中的 C++ Mozilla 何调用 调用      更新时间:2023-10-16

我正在使用Mozilla Rhino用于我的应用程序,我需要在实施过程中致电C/C 库。除了直接通过Java拨打C/C 功能外,是否有任何简单的方法可以执行此操作?

您将无法直接从JavaScript致电C/C 函数。

您可以创建一个可以从Java调用C/C 本机代码的Java包装类。然后在JavaScript上调用Java包装类中的方法。如果您想采用这种方法,请搜索有关使用JNA或JNI或类似方法的教程(对于Java< -> c/c )。

但是,这种方法有一些问题:

  • C/C 代码将在与JVM相同的地址空间中运行。C/C 代码中的错误负责硬崩溃 JVM。硬盘很难调试。

  • 典型的C/C 代码不是线程安全。如果您尝试从多线程的Java代码调用它,则可能发生坏事;例如请参阅上文。

  • JavaScript-> Java-> C 调用序列不会便宜。人们尝试使用C/C 获得性能提升并不尚不清楚,只是发现其应用程序运行。。