Skip to content

Commit 09ff515

Browse files
committed
使用java12
1 parent bdf933a commit 09ff515

File tree

1 file changed

+13
-10
lines changed

1 file changed

+13
-10
lines changed

CppCallJni.cpp

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,10 @@
33

44
#include <stdio.h>
55

6-
#define JAVA_HOME "D:\\Program Files\\Java\\jre1.8.0_60"
6+
// #define JAVA_HOME "D:\\Program Files\\Java\\jre1.8.0_60"
7+
#define JAVA_HOME "D:\\Program Files\\Java\\jdk-12.0.2"
78
#define JVM_DLL JAVA_HOME "\\bin\\server\\" "jvm.dll"
8-
9+
#define CLASSPATH JAVA_HOME "\\jre\\lib"
910
#ifdef __cplusplus
1011
#if __cplusplus
1112
extern "C" {
@@ -20,18 +21,18 @@ extern "C" {
2021
JNIEnv *penv = NULL;
2122
JavaVMOption options[4];
2223
options[0].optionString = "-Djava.compiler=NONE";
23-
options[1] = { "-Djava.class.path=.;D:\\Program Files\\Java\\jre1.8.0_60\\lib\\dt.jar;D:\\Program Files\\Java\\jre1.8.0_60\\lib\\tools.jar", NULL };
24+
options[1].optionString = { "-Djava.class.path=.;" CLASSPATH ";" };
2425
options[2].optionString = "-verbose:NONE";
2526
options[3].optionString = "-XX:+CreateMinidumpOnCrash";
26-
JavaVMInitArgs args = { JNI_VERSION_1_8, 4, options, JNI_TRUE };
27+
JavaVMInitArgs args = { JNI_VERSION_10, 4, options, JNI_TRUE };
2728
char *jvmDll = JVM_DLL;
28-
HMODULE hmod = LoadLibraryA("D:\\Program Files\\Java\\jre1.8.0_60\\bin\\server\\jvm.dll");
29+
HMODULE hmod = LoadLibraryA(JVM_DLL);
2930
JNICreateJavaVM pJNICreateJavaVM = (JNICreateJavaVM)GetProcAddress(hmod, "JNI_CreateJavaVM");
30-
JNIGetCreatedJavaVMs pJNIGetCreateJavaVMs = (JNIGetCreatedJavaVMs)GetProcAddress(hmod, "JNI_GetCreatedJavaVMs");
31-
JavaVM *pvms[32] = { 0 };
32-
jsize pvmsnum = 0;
33-
status = pJNIGetCreateJavaVMs(pvms, sizeof(pvms), &pvmsnum);
34-
status = pJNICreateJavaVM(&pvm, (void**)&penv, (void*)&args);
31+
// JNIGetCreatedJavaVMs pJNIGetCreateJavaVMs = (JNIGetCreatedJavaVMs)GetProcAddress(hmod, "JNI_GetCreatedJavaVMs");
32+
// JavaVM *pvms[32] = { 0 };
33+
// jsize pvmsnum = 0;
34+
// status = pJNIGetCreateJavaVMs(pvms, sizeof(pvms), &pvmsnum);
35+
status = (*pJNICreateJavaVM)(&pvm, (void**)&penv, (void*)&args);
3536
if (status == JNI_ERR) {
3637
return 0;
3738
}
@@ -60,6 +61,8 @@ extern "C" {
6061
penv->ReleaseStringUTFChars(retStr, 0);
6162

6263
pvm->DestroyJavaVM();
64+
printf("press any key");
65+
getchar();
6366
}
6467

6568
#ifdef __cplusplus

0 commit comments

Comments
 (0)