Pergunta

Eu estou trabalhando em um código-fonte de visualização do projeto que utiliza o processando biblioteca central. A biblioteca de processamento tem a opção de usar a biblioteca OpenGL JOGL para renderizar gráficos que realmente melhora o desempenho. No entanto, os arquivos JNI que usa JOGL não estão necessariamente disponíveis em tempo de execução, dependendo de quem está usando o projeto e em que plataforma.

Atualmente só temos o usuário especificar se querem usar OpenGL, mas, obviamente, seria muito melhor se pudéssemos usar OpenGL por padrão e só cair de volta para o processamento de software quando ele não está disponível. As bibliotecas de processamento não parecem fazer isso fácil, você é supor somente especificar um renderizador de uma vez, e mudança prestadores dá ... comportamento novela.

Qualquer idéia de como descobrir se os JNIs necessárias para JOGL estão disponíveis e funcionando em tempo de execução?

Foi útil?

Solução

Simples apenas tentar carregar a classe com o seu ClassLoader usando loadClass e pegar uma excepção ClassNotFound e UnsatisfiedLinkError para fazer a funcionalidade de reserva.

Outras dicas

A outra maneira pura para se certificar de que você começa a usar Jogl é implantar via JNLP. Você pode incluir Jogl como uma dependência remoto eo Java lançador vai buscar automaticamente a versão nativa apropriada.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top