1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Projeto funciona dentro da IDE do NetBeans, mas não funciona a partir do arquivo .jar

Olá a todos.

Desenvolvi uma aplicação Java para controlar uma máquina através da porta serial do computador (RS232). Para isso, utilizo um cabo conversor USB para RS232 com os drivers devidamente instalados. No desenvolvimento do projeto utilizei a biblioteca jssc que pode ser encontrada aqui: https://code.google.com/p/java-simple-serial-connector/. (Estou usando a versão 2.6.0).

Quando eu executo a aplicação de dentro do NetBeans, tudo funciona como deveria funcionar. Entretanto, se eu construir o projeto e rodar a aplicação a partir do arquivo jar de fora do NetBeans, eu não consigo mais acessar a porta serial. Fiquei me perguntando se talvez eu tenha esquecido de algum arquivo. Mas é interessante que quando eu executo a aplicação de fora do NetBeans, ela consegue mostrar as portas seriais disponíveis no computador e isso só é possível se a aplicação conseguir acessar a biblioteca jssc. Apenas a comunicação com a máquina não funciona.

Dei uma pesquisada nessa biblioteca e cheguei à conclusão de que no Windows ela utiliza uma dll que já se encontra embutida no arquivo jar da biblioteca. Será que esse arquivo está sendo acessado corretamente? Como eu posso ter certeza disso?

Seguem alguns detalhes que talvez possam ser úteis:

Sistema operacional: Windows 7 Home Basic 32 bits

Cabo USB para RS232: Comm5, utilizando chip PL2303 da Prolific

Maneira como acesso o arquivo jar de fora do NetBeans:

Copiei os arquivos de dentro da pasta "dist" no meu projeto. Esses arquivos incluem o arquivo jar da minha aplicação, um arquivo "readme" gerado pelo NetBeans e a pasta "lib" que contém o arquivo jssc.jar da biblioteca para acesso à porta serial.

Desde já agradeço a atenção.

  • Bom dia Leonardo. Nunca trabalhei com este tipo de programa, então não tenho grande conhecimento. Mas por se tratar de uma dll, tenta pegar este dll que vem com a biblioteca e colocar na pasta system32 do Windows. Depois tu abre o executar e digita regsvr32 c:/windows/system32/nomedadll.dll. Isto é para registrar a dll no Windows. Veja se resolve.

    rpassos81   23 de jun de 2015
  • Olá rpassos81. Tentei fazer o que você me falou, mas quando fui registrar a dll, apareceu uma mensagem de erro: "O módulo c://windows/system32/jSSC-2.6_x86.dll foi carregado, mas o ponto de entrada DllRegisterServer não foi localizado. Certifique-se de que c://windows/system32/jSSC-2.6_x86.dll é um arquivo DLL ou OCX válido e tente novamente."

    Leonardo Felzmann   23 de jun de 2015
  • De qualquer forma, este arquivo estava embutido no arquivo jar da biblioteca. Considerando que está na mesma pasta da aplicação, não sei se é necessário registrar a DLL. Mas eu copiei o arquivo e movi para a pasta System32 como você falou.

    Leonardo Felzmann   23 de jun de 2015
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags java ou faça a sua própria pergunta.