Iniciando em Java3D - Já com problemas ... [RESOLVIDO]

11 respostas
V

Bom dia !

Primeiramente, nem sei direito se “Java Avançado” era a seção certa para se abrir esse tópico,
Mas abri aqui mesmo …

Estou começando a programar em Java3D e logo no 1º codigo que eu fui fazer já apareceu o
seguinte erro:

Exception in thread main java.lang.UnsatisfiedLinkError: no j3dcore-ogl in java.library.path

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

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

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

at javax.media.j3d.NativePipeline$1.run(NativePipeline.java:189)

at java.security.AccessController.doPrivileged(Native Method)

at javax.media.j3d.NativePipeline.loadLibrary(NativePipeline.java:180)

at javax.media.j3d.NativePipeline.loadLibraries(NativePipeline.java:137)

at javax.media.j3d.MasterControl.loadLibraries(MasterControl.java:948 )

at javax.media.j3d.VirtualUniverse.(VirtualUniverse.java:280)

at javax.media.j3d.Canvas3D.(Canvas3D.java:3862)

at cubo.HelloWorld3D.(HelloWorld3D.java:19)

at cubo.HelloWorld3D.main(HelloWorld3D.java:35)

Alguém saberia me dizer o que é e como resolvo ???

Além disso, será que alguém tem e-books ou apostilas pra me passar ?

Abraço

11 Respostas

J

Esse erro aconteceu porque sua aplicação não conseguiu encontrar a dll j3dcore-ogl.dll . Você precisa colocá-la no path ou alterar o trecho de código que a localiza (se você tiver acesso a esse código).
Para colocar a dll no path, você pode alterar a variável de ambiente path, incluindo-a, ou pode copiar essa dll para um diretório que já esteja no path.

V

Eu não tenho acesso ao código …

E eu uso Linux, então acho estranho o programa estar procurando um dll.

Temos que instalar alguma coisa a mais quando vamos trabalhar com java 3D ou só baixar os .jar
referentes as bibliotecas utilizadas ?

M

O Java 3D usa APIs nativas então voce precisa linkar a biblioteca com a aplicação.

Procura no site a versão pra linux que deve vir a lib.

J

Olha, eu nunca utilizei o Java3D, mas já tomei esse erro em outras situações. Como falei, você não precisa ter acesso ao código, basta que coloque o arquivo necessário no path. O que deve acontecer é que a API que você está usando (no caso a Java3D) usa código nativo, que é o código escrito em outra linguagem e que pode ser acessado pelo Java, através das bibliotecas dinâmicas (.dll pra Windows ou .so pro Linux). Procure no que você baixou por um arquivo chamado j3dcore-ogl e coloque esse arquivo no path, e veja se resolve seu problema. Aí você volta aqui e conta o que aconteceu, se não resolver a gente busca outras soluções.

V

Agora eu vou almoçar, quando voltar tento fazer isso.

Mas já adianto que só me lembro de ter baixado arquivos .jar do site da Sun.

Estou usando IDE eclipse, acho que isso não interfere em muita coisa, certo ?.

E alguém pode me explicar como eu adiciono esse arquivo na PATH (lembrando que eu uso Linux) ?

Desde já agradeço.

M

Pelo eclipse.
Project>Configure Build Path… vá até o jar que precisa das libs e clique para expandir e mude no Native não lembro o que.

No site da Sun tem um instaler do Java 3D de acordo com o sistema operacional, voce pode instala-lo e baixar apenas o jar do Java 3D mult-plataform que vai buscar da instalação de acordo com o SO do usuario.

V

Realmente, junto com os pacotes jar que eu baixei do site da SUN
tem dois arquivos chamados

libj3dcore-ogl.so

e

libj3dcore-ogl-cg.so

Porém, não consigo adicioná-los pelo eclipse.
Vou em Project --> Properties
então se abre uma janela com o título "Properties for ".
Clico no pacote que contém a classe que gera o erro ( javax.media.j3d.NativePipeline ) e então
escolho a opção “Native library location: (None)” , clico no botão “Edit…”,
se abre outra janela, agora com o título “Native Library Folder Configuration”.
Clico no botão “External Files…” para procurar o arquivo, mas quando chego no
diretório em que o os dois arquivos citados acima se encontram, a mensagem é mostrada

Choose a directory containing native libraries

e não consigo selecionar os arquivos .so

O que será que eu posso fazer então ?

V

Consegui adicionar os arquivos.
Bastava selecionar o diretório ao invés dos arquivos. -.-*

Agora o programa compilou ( deu até um NullPointerException só pra descontrair … )

Só mais um favor:

Alguém tem conhecimento de bons livros ou apostilas de Java3D e poderia me indicá-los ?

Muito obrigado pessoal.

J

Coloque um [Resolvido] no título do tópico.

V

Tá colocado!

Muito obrigado.

M

Pessoal ultimamente ta viciado nisso de “coloque [RESOLVIDO]”.

Anyway…

https://fivedots.coe.psu.ac.th/~ad/jg/

Excelente material sobre Java 3D.
Leia o conteudo online.

Criado 2 de outubro de 2009
Ultima resposta 2 de out. de 2009
Respostas 11
Participantes 3