Maybe it could be that's making a call to some alread compiled library?
Да, я думаю, вам нужно немного узнать о том, что такое JNI. Позвольте мне постараться представить этот фон быстро, так как я думаю, что он прояснит ваше замешательство или, по крайней мере, поставит вас на правильный путь.
Среды исполнения Java не могут работать на Java - они реализованы как собственные исполняемые файлы.
JNI (собственный интерфейс Java), по сути, является нативным интерфейсом для запроса среды выполнения Java о различных действиях.
Среди множества других вещей, , вы можете использовать JNI для вызова методов, реализованных в Java .
JNI имеет несколько различных вспомогательных методов для вызова различных типов методов.
Метод, о котором вы спрашиваете, в частности, CallStaticVoidMethod
будет использоваться для вызова функции Java, такой как в этом примере:
public static void DoSomething() { ... }
Чтобы среда выполнения вызывала этот метод, ему необходимо знать несколько вещей, таких как: информация о текущей среде выполнения / контексте / среде (это параметр JNIEnv * env
), класс, который объявлен статическим методом. in (это параметр jclass cls
), метод для вызова (это параметр jmethodID methodID
).
EDIT:
Продолжение вашего ответа:
Я нашел это без особых проблем в коде OpenJDK.
http://hg.openjdk.java.net/
cvmi / cvmi / jdk Common VM Interface
http://hg.openjdk.java.net/cvmi/cvmi/jdk/archive/tip.zip
Под:
. / ЦСИ / доля / JavaVM / экспорт / jni.h
void CallStaticVoidMethod(jclass cls, jmethodID methodID, ...) {
va_list args;
va_start(args,methodID);
functions->CallStaticVoidMethodV(this,cls,methodID,args);
va_end(args);
}
Я не знаю, где это назначено: functions->CallStaticVoidMethodV
, но я уверен, что если у вас возникнут проблемы с загрузкой всего исходного кода для различных компонентов, вы найдете структуру с этим членом и / или назначением на указатель этой функции - и вы можете перейти оттуда.
Поскольку он должен быть стандартным / общим интерфейсом для нескольких сред выполнения, я не удивлюсь, если будет существовать некоторый уровень косвенности между фактической реализацией и тем, как она отображается через JNI.