Erro na execucao do java3d

29 respostas Resolvido
Isaura_Antonio

Estou começando os estudos com java3d e me deparei com esse erro, alguém pode ajudar -me?

29 Respostas

staroski

Você tem que setar o java.library.path apontando para o diretório onde estão as bibliotecas nativas do Java 3D (Arquivos .dll no Windows e arquivos .so no Linux),

Isaura_Antonio

E como faço isso, podes me ensinar agradeceria? pfv

Isaura_Antonio

Estou usando o linux ubuntu

staroski

Como qualquer propriedade de sistema. :slight_smile:

Ou você passa diretamente como parâmetro para a máquina virtual, isando o -D, exemplo:

java -cp <classpath de minha aplicação> -Djava.library.path=<pasta que contém as DLLs> nome.dopacote.NomeDaClasseMain

Ou então, no seu código Java, antes de ter carregado qualquer classe do Java 3D, faça:

System.setProperty("java.library.path", "<pasta que contém as DLLs>");
Isaura_Antonio

Para ser sincera não entendi, podes dar-me exemplo, baseando-se no meu caso?

staroski

Onde você instalou o Java 3D?
Em qual pasta dele estão os arquivos com extensão .so?

Isaura_Antonio

Instalei em Documentos, estão numa pasta lib

Isaura_Antonio

Arquivos com extensao .jar

Isaura_Antonio

Mas depois adicionei a livraria

staroski

Isso são somente os JARs contendo as classes Java.
O Java 3D também possui arquivos nativos.
Dá uma olhada nos diretórios onde você instalou o Java 3D.

Isaura_Antonio

Encontrei um libcore com extensão .so

staroski

Então ali no método main, antes de instanciar o Hello3D, você seta a propriedade:

System.setProperty("java.library.path", "caminho da pasta que contém o arquivo .so");

Deve ter uma forma de setar isso nas propriedades do seu projeto no NetBeans, mas como não utilizo NetBeans, não sei como fazer.

staroski
Solucao aceita

Clica com o botão direito no seu projeto e seleciona “Properties”, aí configura na tela abaixo:

Daí não vai mais precisar do System.setProperty

Isaura_Antonio

O caminho esta correto senhor: ? O meu arquivo encontra -se em Documentos?

System.setProperty(“java.library.path”, “<home/isaura/Documentos/lib/amd64>”);

staroski

Não funcionou setando nas propriedades do projeto?

System.setProperty("java.library.path", "/home/isaura/Documentos/lib/amd64");
Isaura_Antonio

Não sei o porque não está dando certo senhor:sleepy::sleepy:

Isaura_Antonio

staroski

Pela mensagem de erro, você não informou qual classe é pra executar.

Isaura_Antonio

Fiz dessa forma que o senhor está me ensinando, e aparece aquela sms de erro, que não está encontrando o main, não sei o pk…

Isaura_Antonio

Devido aquela forma senhor, a outra continua dando erro, o que posso fazer?

staroski

Parece ser bug do NetBeans.

staroski

Não me chama de senhor, faz parecer que dou velho.
Ensinei duas formas:

  • uma com o setProperty no código.
  • outra com o -D como argumento da máquina virtual.

Qual não está funcionando?

Como você faz pra executar sua classe?

Isaura_Antonio

@staroski para executar a class, estou dando um run na respectiva class apenas

estou a usar a segunda forma, infelizmente nenhuma está resultando, testei as duas…

staroski

E você consegue executar outra classe qualquer que contenha método main?

staroski

Pusta uma imagem com a configuração de "Run" do seu projeto.

Isaura_Antonio

Não consigo infelizmente @staroski, devido aquela configuração, no Test

Feliz ano novo @staroski

Isaura_Antonio

Isaura_Antonio

Para ser sincera já nem sei o que fazer :sleepy:

Isaura_Antonio

Muito Obrigada @staroski funcionou completamente, o meu erro estava no caminho, desculpa, estive analisando o caminho onde estou , na pasta netbean para recuar ate ao ficheiro .so tal como me ensinaste:

-Djava.library.path="…/…/Documentos/lib/amd64"

Criado 30 de dezembro de 2020
Ultima resposta 1 de jan. de 2021
Respostas 29
Participantes 2