Помимо JNI, существует также Java Native Access (JNA), который требует гораздо меньшего количества настроек (без заголовочных файлов C), поэтому ваши функции Delphi DLL (и обратные вызовы) могут использоваться непосредственно из Java:
Домашняя страница JNA
JNA обеспечивает легкий доступ к программам Java
в собственные общие библиотеки (библиотеки DLL на
Винда) ничего не написав но
Java-код - нет JNI или нативный код
требуется. Эта функциональность
сравнимо с платформой / Invoke Windows
и типы Python. Доступ динамический
во время выполнения без генерации кода.