首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将Java嵌入到C++应用程序中?

将Java嵌入到C++应用程序中?
EN

Stack Overflow用户
提问于 2011-09-22 04:39:34
回答 2查看 31.2K关注 0票数 25

我得到了一个用C++编写的应用程序,我可以通过用C++为它编写插件来扩展应用程序的功能。

我主要想做的是将Java嵌入到这个应用程序中。这已经用Python完成了(不是我做的)。

我读过一些关于JNI的文章,但总会有使用Java类的完整程序员的演讲。

我想要做的是,在Java语言中使用C++中的类来与应用程序交互。

在这种情况下,它是一个3D应用程序,名为Cinema4D。

有没有一种方法可以在应用程序运行时(以某种脚本语言)使用JNI或类似的东西编译和评估Java代码?

嵌入完成后的虚构代码示例:

代码语言:javascript
复制
import c4d.documents.*;

class Main {
  public static void main() {
    BaseDocument doc = GetActiveDocument();
    BaseObject op = doc.GetActiveObject();
    if (op != null) {
      op.Remove();
    }
  }
}

此代码应与Cinema4D交互以删除所选对象。

EN

回答 2

Stack Overflow用户

发布于 2011-09-22 04:45:49

对于您描述的场景,JNI可能是最好的方法。您将把C++应用程序的功能公开为DLL,它可以合并到Java应用程序中,也可以从Java应用程序中使用。

票数 0
EN

Stack Overflow用户

发布于 2011-09-22 04:54:21

您可能需要重新考虑您的设计。对于这类任务,Java不是一个好的选择。java标准库中没有类似于python或shell中的eval()eval()函数。

您可以使用JNI在C++代码中创建一个java,但它有点重。仍然存在如何从java源创建字节码问题。要在C++中编译和运行java代码,您必须嵌入大量代码。别干那事。一定有更好的解决方案。

例如,您可以在C++代码和单独的java代码之间使用一些RPC (SOAP、XML-RPC、Corba)。如果您需要执行一些eval()-like java调用,您可以使用Groovy或Jython (两者都有eval(),可以访问所有标准java库,并且可以运行常规java类)。

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7506329

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档