调用C++;来自Java的函数 我正在开发一个java应用程序,在其中我需要调用C++函数(谷歌Talk Lable LIGBILE)。目标是在Google App Engine(只支持Python或Java)上运行这一切 我如何能做到这一点?< /p> < p>您需要在java代码中定义本地< /Cord>方法,用于C++中实现的任何内容,并直接访问本机代码。然后在代码上运行 java,它将生成C头文件,并且需要提供C++实现。 本地方法,可以从java代码中调用任何其他方法,但它们仍然有C++实现,并直接与其他任何本地库对话。

调用C++;来自Java的函数 我正在开发一个java应用程序,在其中我需要调用C++函数(谷歌Talk Lable LIGBILE)。目标是在Google App Engine(只支持Python或Java)上运行这一切 我如何能做到这一点?< /p> < p>您需要在java代码中定义本地< /Cord>方法,用于C++中实现的任何内容,并直接访问本机代码。然后在代码上运行 java,它将生成C头文件,并且需要提供C++实现。 本地方法,可以从java代码中调用任何其他方法,但它们仍然有C++实现,并直接与其他任何本地库对话。,java,c++,google-app-engine,java-native-interface,Java,C++,Google App Engine,Java Native Interface,然后,您需要设置java.library.path系统属性以包含所需的共享C/C++库:在这种情况下,需要google库和您自己的JNI实现库。如果库通过DLL/SO具有C绑定,我通常更喜欢用Java编写包装器,而不是用C/C++编写绑定。前者更容易操作,因为JNI对Java对象的访问是一个真正的难题。但是,使用API来封装C++类并不明显。 您可能还想了解此过程自动化部分的详细信息 您不能在App Engine上运行本机代码-只有JRE代码。如果无法避免本机代码,您需要在另一个系统上运行应用程

然后,您需要设置java.library.path系统属性以包含所需的共享C/C++库:在这种情况下,需要google库和您自己的JNI实现库。

如果库通过DLL/SO具有C绑定,我通常更喜欢用Java编写包装器,而不是用C/C++编写绑定。前者更容易操作,因为JNI对Java对象的访问是一个真正的难题。但是,使用API来封装C++类并不明显。
您可能还想了解此过程自动化部分的详细信息

您不能在App Engine上运行本机代码-只有JRE代码。如果无法避免本机代码,您需要在另一个系统上运行应用程序的这一部分,并从您的应用程序引擎应用程序调用它-或者使用内置的,在这种情况下。

对于JNI,为什么您的标签中已经有了它?!您是否特别需要LibKingle,或者任何XMPP库都会这样做?您可以看到可用库的列表,谢谢大家。你知道C++中的JNI和本地代码是否与谷歌App Engine结合得很好?不,它们没有。应用程序引擎,通过JNI或任何其他方式。通过该链接:“应用程序不能提供或直接调用任何本机JNI代码。”asaf上面的评论是正确的。你可能想改用AppEngine。