Olá
Júlio o nosso diálogo é só se é possível ou não um programa chamar o Java via uma DLL. É isto que digo ser possível. Basta o Java iniciar a comunicação (no início do dia), chamar a DLL e em uma thread separada, ficar esperando a resposta. O tal programa chama a DLL que responde ao Java passando na resposta justamente os parâmetros que o Java precisa. O Java então processa e chama de novo a DLL, passando como parãmetros, as respostas.
Possível é. É bom? Não. Mas em alguns casos de escutar eventos de hardware é a solução.
Normalmente quando a gente precisa chamar ooutras linguagens e não sujar as mãos com DLLs (que geralmente são coisas porcas), o mais fácil é escrever em um determinado diretório que o Java fica monitorando. Já usei isto entre VB e Java em aplicação de captura de cartão de crédito e funciona perfeitamente.
Outro meio é usar sockets que também já usei entre linguagens diferente e também funciona.
Mas estas duas mas o JNI só funcionam na mesma máquina (JNI) ou na mesma rede local. Para ter uma solução que funcione em qualquer lugar, o caminho passa por troca de mensagens usando Web services, xml-rpc, o tal java-bridge ou assemelhados.
[]s
Luca