Invoke(ClassName: String, MethodName: String, MethodSig: String, Params: Array): Variant;
ClassName. Наименование Java-класса в файловой системе или наименование системного модуля в сигнатуре JNI. При указании Java-класса в файловой системе используется файл с расширением *.class. Значение параметра является регистрозависимым;
MethodName. Наименование выполняемого метода. Значение параметра является регистрозависимым;
MethodSig. JNI-сигнатура метода;
Params. Массив значений параметров, передаваемых в метод.
Метод Invoke выполняет статический Java-метод и возвращает результат его работы.
Для выполнения метода файл с расширением *.class должен быть расположен по пути, который задается с помощью строкового параметра Options в ветке реестра HKEY_CURRENT_USER\SOFTWARE\Foresight\Foresight Analytics Platform\10.0\DevEnv\Java. Для получения подробной информации обратитесь к разделу «Подключение дополнительных модулей к «Форсайт. Аналитическая платформа».
Для получения Java-класса в файловой системе и конвертации файла с расширением *.java в файл с расширением *.class используйте метод IJavaUtils.Compile.
Для выполнения примера предполагается наличие файла Test.class. Файл должен быть расположен в файловой системе по заданному пути в реестре и содержать скомпилированную версию следующего кода на Java:
public class Test {
public static double staticFunc(double a, double b){
return (a + b)/2;
}
}
Добавьте ссылку на системную сборку Java.
Sub UserProc;
Var
Result: Variant;
Begin
Result := Java.Invoke("Test", "staticFunc", "(DD)D", 3.0, 4.0);
Debug.WriteLine(Result);
End Sub UserProc;
При выполнении примера будет выполнена функция на языке Java, осуществляющая математическое вычисление на основании значений, переданных в параметрах. Результат выполнения функции будет выведен в консоль среды разработки.
См. также: