`

C++调用Java

    博客分类:
  • C++
阅读更多
//invoke.h 
#ifndef   INVOKE_H_ 
#define   INVOKE_H_ 

//函数声明 
int invokeJava(char* javaClass); 


#endif 




// InvokeHook.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <wchar.h>
#include <windows.h>
#include <jni.h>
#include <assert.h>

#include  "invoke.h " 

int invokeJava(char* javaClass)
{
	_tprintf(_T("===============!\n"));
    JavaVM *vm;
    JNIEnv *env;
    JavaVMInitArgs args;
    JavaVMOption ops[1];
    ops[0].optionString = "-Djava.class.path=D:/wrap/tinyserver/bin";
    args.version = JNI_VERSION_1_6;
    args.options = ops;
    args.nOptions =1;
    args.ignoreUnrecognized = JNI_TRUE;
   
	jint created = JNI_CreateJavaVM(&vm,(void **)&env,&args);
    if (created < 0){
        printf("can't create java vm");
		return -1;
    }
	jclass testNative2 = env->FindClass(javaClass);
    //jclass testNative2 = env->FindClass("info/lidongbo/TinyServer");
    assert(testNative2 != NULL);
    jobjectArray main_args = env->NewObjectArray(1, env->FindClass("java/lang/String"),env->NewStringUTF("FromC"));
    jmethodID testNative2_main = env->GetStaticMethodID(testNative2,"main","([Ljava/lang/String;)V");
    assert(testNative2_main != NULL);
    env->CallStaticObjectMethod(testNative2,testNative2_main,main_args);
    vm->DestroyJavaVM();
	
    return 0;
}
分享到:
评论

相关推荐

    C++调用java jar包测试代码

    标题 "C++调用java jar包测试代码" 描述了一个跨语言交互的场景,其中C++程序通过调用Java编译后的jar包来执行特定功能。这个过程涉及到多个技术点,包括Java的编译和打包,C++的编程以及两者之间的接口调用。 1. *...

    C++调用Java方法

    Android Studio项目,此Demo实现Java调用C++函数,然后C++函数回调Java方法、纯C++直接调用Java方法,此为github地址链接

    C++调用java方式

    本案例中,我们关注的是"C++调用Java"的实现,这在需要利用C++的性能优化和Java的跨平台特性时非常有用。我们将深入探讨这个主题,包括原理、步骤以及提供的示例文件。 首先,C++调用Java主要依赖于Java Native ...

    c++调用java工程

    ### c++调用java工程:深入理解JNI技术 在现代软件开发中,多语言混合编程已成为常态,特别是在大型项目中,不同的编程语言被用于解决各自领域的问题,以达到最佳的性能和开发效率。C++与Java,作为两种广泛使用的...

    实战-C++调用Java函数

    本案例探讨的是如何使用C++调用Java函数,这通常涉及到JNI(Java Native Interface)技术。以下是对这个实战项目的详细解释: 首先,我们要理解标题"实战-C++调用Java函数"所涉及的核心知识点。C++是一种强大的系统...

    aix下使用c++调用java类(包)

    在AIX操作系统上,使用C++调用Java类(包)是一种常见的跨语言交互技术,主要依赖于Java Native Interface (JNI)。JNI允许Java代码调用本地(非Java)代码,反之亦然,使得C++和Java可以无缝协作。下面我们将深入...

    Android Studio3.0开发JNI流程------C++调用Java以及Java调用C++,C++/Java互相调用

    本文将详细讲解在Android Studio 3.0中如何实现C++调用Java以及Java调用C++的过程。 首先,我们需要在Android Studio项目中配置NDK(Native Development Kit),它是Android用于编写和编译C/C++代码的工具集。在...

    C++调用Java接口

    你可以下载并研究这个项目,以加深对C++调用Java接口的理解。 通过这种方式,C++和Java之间可以实现无缝通信,允许我们充分利用两种语言的优点。这种技术广泛应用于游戏开发、高性能计算、嵌入式系统等领域,使得...

    C++ 调用javaWebService接口代码

    总的来说,C++调用Java WebService接口是一个涉及多种技术的复杂过程,需要对XML、SOAP、WSDL有深入理解,并熟悉所选用的C++ Web服务库。正确地实现这一过程可以使得异构系统的组件能够有效地协同工作。

    Android-JNI完整工程,实现c++调用java和java调用c++

    7. **C++调用Java**: - 通过`JNIEnv`指针,C++可以查找并调用Java对象的方法,访问字段,甚至创建新的Java对象。 8. **构建流程**: - 使用NDK(Native Development Kit)编译C/C++代码,生成.so文件。 - 将.so...

    C++调用java代码的JNI实现

    ### C++调用Java代码的JNI实现概述 在软件开发领域,经常会出现不同语言之间相互调用的需求。本文将深入探讨如何使用C++通过JNI(Java Native Interface)调用来实现对Java代码的调用,特别关注于用户身份验证与...

    Android中C/C++调用Java代码

    "Android中C/C++调用Java代码" Android中C/C++调用Java代码是通过Java Native Interface(JNI)实现的。JNI提供了一种机制,允许Java代码和native代码之间相互调用。下面我们将详细介绍Android中C/C++调用Java代码...

    JNI技术手册 c/c++调用java

    通过以上详细的步骤和技术要点,我们可以看到,无论是Java调用C/C++还是C/C++调用Java,都需要仔细地处理数据类型转换、异常处理以及性能优化等问题。掌握这些技术细节,对于开发高效稳定的跨语言应用程序至关重要。

    C++调用Javawebservice.pdf

    总的来说,C++调用Java Web Service涉及到的主要步骤包括:生成C++客户端代理类、构建SOAP请求、发送请求并解析响应。过程中可能需要借助如MS SOAP Toolkit这样的工具进行调试和监控,确保通信的正确性。对于复杂的...

    C++调用Java参考代码

    这个头文件包含了方法签名和函数原型,是C++调用Java的桥梁。 3. **实现JNI函数**:在C++源文件中,根据生成的头文件实现这些`native`方法。这些函数通常会使用JNI提供的API来执行实际的调用。 4. **加载动态链接...

    JNI实例 Java调用DLL c++调用Java

    本示例提供了两个关键的应用场景:Java程序调用DLL(动态链接库)以及C++调用Java类的方法。 首先,Java调用DLL的例子展示了如何通过JNI来利用本地资源。DLL是Windows操作系统上的动态链接库,其中包含可由多个程序...

    3.jni_c++调用java中的方法

    **C++调用Java方法** 1. **加载Java类:** 使用`JNIEnv`指针的`FindClass`方法,传入要查找的Java类的全名(包括包名)。 2. **获取方法ID:** 使用`GetMethodID`,需要提供类的ID、方法的签名以及方法名。方法...

    C++ 调用Java类,已实践

    其中,C++调用Java类的主要途径是通过Java Native Interface (JNI)来实现。 #### JNI简介 JNI(Java Native Interface)是一种标准,用于定义Java应用程序如何与用其他语言编写的本地代码进行交互。它的设计目标是...

Global site tag (gtag.js) - Google Analytics