JVM não encontra biblioteca do linux. Como faço?

3 respostas
Rodrigo_Vieira_Pinto

Olá pessoal!!
Estou desenvolvendo um software em java para linux, e preciso acessar uma biblioteca chamada libparport.so . Acontece que quando chamo o programa, ele gera o seguinte erro:

Exception in thread main java.lang.UnsatisfiedLinkError: no libparport in java.library.path

at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1682)

at java.lang.Runtime.loadLibrary0(Runtime.java:822)

at java.lang.System.loadLibrary(System.java:992)

at parport.ParallelPort.<clinit>(ParallelPort.java:75)

at SimpleIO.main(SimpleIO.java:6)

Como faço para a JVM localizar essa biblioteca?
Valeu!!

3 Respostas

T

Copie o arquivo .so para algum diretório listado no seu “java.library.path”. Para obter o valor de “java.library.path”, escreva um programa que faça isso:

System .out .println (System .getProperty (“java.library.path”));

Obviamente se você tiver uma applet, não uma aplicação Java, a linha acima só funciona em applets assinados. É mais fácil chamar o Java Console e pegar o valor, digitando s ( dump system and deployment properties ) e procurando o valor de java.library.path

Rodrigo_Vieira_Pinto

Valeu Thingol, funcionou!!

K

Fala Thingol…
cmg não funcinou…

Fiz um System .out .println (System .getProperty (“java.library.path”)); para listar os diretorios do path.
Dai peguei um dos diretorios /usr/lib e coloquei meu .so la dentro…
abri o eclipse e executei a seguinte aplicação

public class Teste {

        try {
			
	     System.loadLibrary("cw1209");
			
		} catch (UnsatisfiedLinkError e){
			Log.write(e.getMessage());
		}

       public static void main(String[] args) {
		new Teste ();
                System.exit(1);
	}

}

e continua mostrando o erro

Exception in thread "main" java.lang.UnsatisfiedLinkError: no cw1209 in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1682)
at java.lang.Runtime.loadLibrary0(Runtime.java:822)
at java.lang.System.loadLibrary(System.java:992)
at parport.ParallelPort.<clinit>(ParallelPort.java:75)
at SimpleIO.main(SimpleIO.java:6)

Outro detalhe… p testar se o prob podia ser na minha .so teste com outra .so q ja tava na pasta usr/lib e dava o msm erro. Fiz td sistema achando q ia funcionar… só q programei do windows e la minha dll func Ok qnd coloquei no linux com minha .so me FU! rssss falta isso p entregar o prj

To usando o fedora 5 e jre 6

abcs e vlw!!!

Criado 28 de março de 2005
Ultima resposta 28 de ago. de 2007
Respostas 3
Participantes 3