从c ++代码调用java方法,而不传递任何JavaVm

时间:2012-02-29 08:44:12

标签: java android c++ java-native-interface

我在C ++中有,其中必须响应HTTP连接,该类必须建立连接发送回复并做一些其他功能。这个类是我编译的最大项目的一部分,最后得到Android的.so库。

class HTTPSClient
{
public:
    WinHTTPSClient();

    ~WinHTTPSClient();

    bool Connect(const XMLString& a_strURL);
};

现在我想在c ++中从连接函数调用java函数。我有从C ++代码调用java函数的经验,但我总是将JavaVM传递给类,例如我调用init(JavaVM* javaVm);并作为参数提供来自本机代码的javavm。

现在我的问题是: 我是否可以从C ++代码调用java方法而不将任何JavaVm作为参数传递。

2 个答案:

答案 0 :(得分:0)

将JavaVM定义为某个类的全局/静态变量,例如,将其包装为单例。可以在不明确地将其作为参数传递的情况下访问该变量。

答案 1 :(得分:0)

您可以使用Java Invocation API直接在您的本机代码中创建VM。

Jim S。