Возможно, вы захотите изучить использование сокетов, если задействована хорошая парадигма производитель-клиент-потребитель-сервер. Таким образом, C-код выполняется в фоновом режиме и передает информацию в службу Java через сокет-соединение, а службы Java, в свою очередь, отправляют ответы обратно в C-код. Вы также можете изучить использование FIFO или именованных каналов для связи, но сокеты, по крайней мере локально на машине, на большинстве платформ бывают довольно быстрыми и эффективными.
Кроме того, сервис Java может запускать C-код при запуске, если вам нужно работать таким образом, или наоборот (т. Е. C-код может отключить виртуальную машину и запустить сервис Java).