Если это работающее приложение Java, вам необходимо предоставить доступ к этой функции. Существует множество возможных решений.
Если это всего лишь 1 функция или очень ограниченная функциональность, то прослушивание скромного сокета или именованного канала - это решение, которое в настоящее время недооценено и отчасти забыто.
На следующем шаге интеграции я бы посмотрел на асинхронную передачу сообщений. Легко встроить сервер activemq или аналогичный или запустить его в отдельном процессе. Это имеет ряд преимуществ, таких как то, что запрос легко синхронизируется в процессе Java, просто используя один поток прослушивания, что поведение хорошо определено, когда программа Java недоступна или Delphi. Им очень легко управлять, и вы получаете инструменты бесплатно.
Встроенный веб-сервер Jetty - это простое и надежное решение, в котором реализован сервлет для выполнения ваших задач. Опять же, большая часть сложности теперь решается с помощью вездесущих и стандартных протоколов.
Кроме того, существуют синхронные методы RPC, такие как COM, Corba, SOAP, которые я лично считаю слишком сложными, подверженными ошибкам и неприемлемым для обслуживания, чтобы использовать их для специальной связи между процессами. Если вы хотите создать полную инфраструктуру общения друг с другом, это может стоить того, но не говорить о двух программах.