Tenho uma aplicação que acessa uma dll (com e .net) via com4j. O acesso funciona perfeitamente, mas a dll retorna um erro dizendo que não conseguiu achar seus arquivos em “c:\arquivos de programas\Java\jdk1.6.0_20\jre\bin…”. Antes de carregá-la, verifiquei o valor de System.getProperty(“user.dir”) e aponta para o diretório correto, da minha aplicação, que é onde estão os arquivos que a dll precisa.
Porque ela acha que o diretório corrente é aquele e como mudar isso?
Fiz um teste rodando a aplicação pelo console e a dll acusa erro em outro local!! c:\windows\system32!
Se eu rodo pelo NetBeans, ela reclama que não encontrou nada em c:\arquivos de programas\java… Se eu rodo via console, reclama em c:\windows\system32!
Descobri o galho…
Quando eu rodo pelo NetBeans, ele usa o java da pasta c:\arquivos de programas\java… Quando eu rodo via console, é usado o java.exe da pasta c:\windows\system32…
só posso imaginar que a dll usa o caminho do executável do programa que a chama para saber qual o diretório corrente… Talvez faça isso por ser uma dll com objetos COM.