:scrambleup: Eu sei, eu sei… Já postei isso uma vez (http://www.guj.com.br/forum/viewtopic.php?t=14084)… Mas a dúvida persiste… Meu caro colega de GUJ, Dharis, me deu umas dicas que funcionaram a princípio, mas que estão me pegando pelo pé agora…
[quote=“Dharis”]Como você está fazendo o carregamento da biblioteca?
System.loadLibrary("nome_da_biblioteca");
ou
System.load("caminho_completo_arquivo_dll");
Parece que System.setProperties("java.library.path", "lib"); não funciona em runtime para System.loadLibrary("ICE_JNIRegistry");, pode estar faltando algo. Pois java -Djava.library.path=lib MainClass funciona!
Mas System.load(iceJniRegistryDll.getAbsolutePath()); parece uma alternativa para o seu caso.[/quote]
Realmente… java -Djava.library.path=lib MainClass funciona e perfeitamente… Para todas as DLLs de todas as APIs que usam JNI que peguei até hoje…
Já System.load(caminho_completo_para_dll); funcionou em algumas dessas APIs e em outras não… Mas o lance é que eu preciso muito que essas DLLs sejam carregadas em runtime… Vou explicar: eu estou usando o InstallAnywhere aqui na empresa e estou usando o LaunchAnywhere… Pra quem não sabe, respectivamente, esses são programas de instalação (incluindo a Java VM) e de iniciar a aplicação Java via exe, sh ou o que o sistema do cliente precisar… O lance é que tem que ser assim, tem que ser com ClassLauncher exe e com instalador que faz um bundle da aplicação com a VM, porque os usuários são toscos demais pra saber o que é PATH, CLASSPATH ou ter uma idéia de como baixar uma VM e rodar uma MainClass… O problema disso é que o InstallAnywhere não me deixa passar “-Djava.library.path=lib MainClass” como argumento para a máquina virtual na hora de gerar o LaunchAnywhere. Logo, das duas uma:
:arrow: Ou eu aprendo a dar load nas DLLs de forma dinâmica, runtime mesmo;
:arrow: Ou então eu aprendo (do nada, uma vez que não achei no Help) como passar argumentos para a máquina virtual pelo InstallAnywhere…
Apesar de eu ter violado toda a ideologia Java em detrimento da ideologia do meu chefe e da idiotologia dos usuários de software em geral, alguém pode me ajudar com um desses tópicos… Quem sabe, talvez, me indicar outra solução que eu não esteja vendo agora… Por favor? :oops: