Estou enfrentando um problema ao carregar a DLL da minha biblioteca JNI.
Eu fiz uma biblioteca, para aprendizado, que permite ao meu programa Java chamar várias funções através da Win32 API, como: MAC address, tamanho do espaço livre em disco, serial do HD, nome da placa de rede, etc.
Coloco a minha DLL na pasta Windows\System32 e tudo funciona perfeitamente. Porém eu observei que vários projetos colocam as DLLs na mesma pasta do JAR que as chama, como por exemplo o SWT e o Systray.
Como eu pretendo distribuir essa biblioteca, eu queria manter a complexidade no mínimo possível, sem mexer em pastas do Sistema Operacional, deixando a DLL na mesma pasta do meu JAR, mas sem usar a diretiva -D do java.exe.
Olhando o código dessas bibliotecas eu vi que eles carregam as DLLs com o comando:
System.loadLibrary
que requer que a DLL esteja em:
java.library.path
Eu já olhei em todo canto, mas não consegui entender como nessas biblioteca eles fizeram para colocar as DLLs na mesma pasta do JAR. Quando eu tento fazer o mesmo eu obtenho a seguinte exceção:
Exception in thread "main" java.lang.UnsatisfiedLinkError: no winsi.dll in java.library.path
Alguém já passou pelo mesmo problema? Agradeço qualquer ajuda, porque já estou ficando louco, estou a ponto de apagar tudo e esquecer esse negócio de JNI. :mad: