Java 在使用JNI时,如何设置由“jps”显示的主类?
在通过JNI启动Java进程时,如何设置由Java 在使用JNI时,如何设置由“jps”显示的主类?,java,c,java-native-interface,jconsole,Java,C,Java Native Interface,Jconsole,在通过JNI启动Java进程时,如何设置由jps或JConsole显示的主类的名称 在C中,我得到一个类和main方法,如下所示: jclass main_class = (*env)->FindClass(env, java_main_class); ... jmethodID main_method = (*env)->GetStaticMethodID(env, main_class, "main", "([Ljava/lang/String;)V"); 然后像这样启动Jav
jps
或JConsole显示的主类的名称
在C中,我得到一个类和main方法,如下所示:
jclass main_class = (*env)->FindClass(env, java_main_class);
...
jmethodID main_method = (*env)->GetStaticMethodID(env, main_class, "main", "([Ljava/lang/String;)V");
然后像这样启动Java:
(*env)->CallStaticVoidMethod(env, main_class, main_method, main_args);
我的进程运行得很好,但是当我运行jps
时,我看不到主类。例如:
$ jps -l
30056
30065 sun.tools.jps.Jps
在JConsole中查找进程时,我还看到一个空白字符串
但是,我确实看到了带有jps
的参数:
$ jps -lv
30068 -Dfile.encoding=UTF-8 -Xmx500m ...
30070 sun.tools.jps.Jps -Dapplication.home=
设置系统属性
sun.java.command
例如:-Dsun.java.command=com.example.Main
我通过搜索与JDK一起分发的中找到了此标记。这与“C”无关,因此请删除“C”标记