Por favor, verifique as configurações do firewall e do Antivírus, se tiver alguma?
Eu tenho um programa Java legado que lida com uma impressora de cartão especial enviando dados binários para a porta LPT1 (nenhum driver de impressora está envolvido, o programa Java cria o fluxo binário).
O programa estava funcionando corretamente com o computador antigo do cliente. O programa Java enviou todos os bytes para a impressora e, depois de enviar o último byte, o programa não foi bloqueado. Demorou mais um minuto para terminar a impressão do cartão, mas o usuário conseguiu continuar o trabalho com o programa.
Depois de alterar o computador do cliente (mas não a impressora ou o programa Java), o programa não conclui a tarefa até que ela esteja pronta, ela é bloqueada até o último segundo.
Parece-me que o LPT1 tem um comportamento diferente agora do que era antes. É possível mudar isso no Windows? Eu verifiquei o BIOS para configurações de porta paralela: A porta paralela está definida como EPP + ECP (mas também tentei as outras duas opções: Bidirecional, somente saída). Talvez algum tipo de buffer de porta paralela seja muito pequeno? Como posso aumentá-lo?
Por favor, verifique as configurações do firewall e do Antivírus, se tiver alguma?
O serviço Spooler de Impressão é iniciado? É um tiro no escuro, eu sei, mas esse é exatamente o tipo de sintoma que você teria se não estivesse em spool.
Verifique as configurações de LPT1 no Gerenciador de dispositivos. Deve haver algo sobre spool ou impressão direta, como sugere o mh .
Aqui está um tiro no escuro (não testado, é claro). Instale um driver de impressora genérico para a impressora em LPT1. Então você deve ser capaz de definir as configurações de spool para a impressora. O Windows não saberá que você não está usando esse driver específico, mas deve obedecer às configurações de spool mesmo assim.
Outra coisa a tentar, se possível: Clique com o botão direito do mouse no programa Java, vá para a guia Compatibilidade e defina o modo Compatibilidade para Windows 98 / ME ou Windows 95. Você também pode tentar os modos NT4.0 e 2000.
você está enviando os dados do thread principal (awt)? Se sim, você poderia criar um novo thread e deixá-lo terminar seu trabalho em segundo plano para que o ui se torne responsivo novamente.