quinta-feira, 8 de setembro de 2011

Como compilar JSR80

Tenho tido vários problemas com a API JSR80 que serve para acessar e manipular dispositivos USB através do Java. Já postei em alguns lugares as minhas dificuldades de uso do API mas por enquanto não tive resposta.
Estou usando Ubuntu 11.04 e meu primeiro problema com o uso da API foi encontrar os arquivos para baixar, depois precisei compilar os arquivos que eu baixei aqui. Depois de baixar e descompactar os arquivos 
javax-usb_1.0.2.zip  
javax-usb-ri_1.0.2.zip 
javax-usb-ri-linux_1.0.2.zip 
você deverá abrir o terminal e instalar o "ant", eu não o conheço bem mas parece ser um compilador de arquivos jar. Instale o ant através de:
sudo apt-get update
sudo apt-get install ant
Depois ainda no terminal entre na pasta que você descompactou o javax-usb_1.0.2.zip (cd /home/usuario/Downloads/javax-usb_1.0.2 por exemplo) e digite:
ant jars
com isso ele deverá gerar um arquivo de nome jsr80.jar dentro de javax-usb_1.0.2/lib e você já terá o seu primeiro jar. Para o segundo você vai fazer a mesma coisa, descompacte o javax-usb-ri_1.0.2.zip entre na pasta dele e na hora de compilá-lo você deverá referenciar o jsr80 que você compilou anteriormente, então supondo que você colocou ele na sua /home/usuario o comando ficará assim:
ant jars -lib /home/usuario/jsr80.jar
Ao fazer isso o ant lê o jsr80.jar para a compilação do seu jsr80_ri.jar que também é gerado dentro de javax-usb-ri_1.0.2/lib. Agora para compilar o terceiro você irá descompactá-lo em alguma pasta como fez com os anteriores, entrar nesta pasta através do terminal e executar o comando referenciando os dois jars que você já compilou:
ant jars -lib /home/usuario/jsr80.jar -lib /home/usuario/jsr80_ri.jar
Quando fizer isto ele já vai da mesma forma como os outros o arquivo jsr80_linux.jar dentro da pasta lib. Prontinho, agora você tem seus 3 jars compilados. Eu não consegui fazer nada além disso, mas acho que é um primeiro passo importante que eu não tinha encontrado em blog nenhum, se algum dos comandos não funcionar, ou tiverem problemas com download perguntem nos comentários que tentamos resolver juntos, eu ainda sou um aprendiz de dev.

Um comentário:

  1. Deu um erro aqui:
    Comando: ant jars -lib /home/tenorio/jsr80.jar -lib /home/tenorio/jsr80_ri.jar

    Retorno:
    [echo] Compiling class files.
    [javac] /home/tenorio/usb/javax-usb-ri-linux/build.xml:107: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
    [echo] Compiling JNI library.
    [exec] gcc -I/include -I/include/linux -Wall -fPIC -c JavaxUsbKernel.c
    [exec] In file included from JavaxUsb.h:14,
    [exec] from JavaxUsbKernel.c:11:
    [exec] com_ibm_jusb_os_linux_JavaxUsb.h:2: fatal error: jni.h: Arquivo ou diretório não encontrado
    [exec] compilation terminated.
    [exec] make: ** [JavaxUsbKernel.o] Erro 1

    BUILD FAILED
    /home/tenorio/usb/javax-usb-ri-linux/build.xml:116: exec returned: 2

    Se puder ajudar agradeço. Até mais.
    henrique.tenorio@hotmail.com

    ResponderExcluir