java.lang.UnsatisfiedLinkError : no SunVoteSDK_x64 in java.library.path

8 respostas
programaçãojava
M

Boa tarde pessoal, estou com um problema em um projeto Java. O programa no eclipse está rodando certinho, porém ao gerar o .JAR e executar, ele retorna o seguinte erro:

java.lang.UnsatisfiedLinkError : no SunVoteSDK_x64 in java.library.path

java.lang.NoClassDeffoundError: Could not initialize class cn.sunnars.sdk.SunARS
Alguém saberia me dizer o pq? Desde já obrigado**

8 Respostas

S

Que classe é essa?
É de uma biblioteca de terceiros?
Você está disponibilizando a biblioteca junto com o seu JAR?

M

Sim, é de uma biblioteca de terceiros e está disponibilizado junto com o JAR…

S

Dê mais detalhes.

Está disponibilizado de que forma?

Sua aplicação e essa biblioteca estão todas dentro de um único JAR ou sua aplicação é um JAR que tem o JAR dessa biblioteca no classpath?

Mostra como está a estrutura de arquivos no eclipse e como está a estrutura do(s) seu(s) JAR(s)

M

A aplicação e a biblioteca estão todas dentro de um único JAR
Segue a imagem da estrutura de arquivos:

S

E esses arquivos abaixo:

libSunVoteSDK_x64.dylib
SunVoteSDK_x64.dll
SunVoteSDK.dll
votecmd.dat

Estão indo junto com seu JAR?
Você vai ter que extraí-los para o java.library.path de sua aplicação.

M

Hmm… desculpe a pergunta, é que eu não manjo muito de Java ainda, mas como eu faria pra extrair para o java.library.path da minha aplicação??

S

Com todo o respeito, se ainda é iniciante, não deveria estar utilizando JNI e/ou JNA.

Primeiro você precisa determinar uma pasta que será adicionada à propriedade de sistema java.library.path

Depois disso, se você incluiu esses arquivos no seu JAR, você pode utilizar o getClass().getResourceAsStream para ler o conteúdo dos arquivos e gravar eles na pasta que você escolheu.

M

kkkkkkk eu realmente não deveria, porém por uma necessidade eu estou tentando…
Acabei não conseguindo falar isso que você disse

Criado 19 de setembro de 2019
Ultima resposta 19 de set. de 2019
Respostas 8
Participantes 2