2008-10-05 10 views
1

Je travaille sur a source-code visualization project qui utilise la bibliothèque principale Processing. La bibliothèque de traitement a la possibilité d'utiliser la bibliothèque OpenGL de jogl pour rendre des graphiques qui améliorent vraiment les performances. Cependant, les fichiers JNI utilisés par jogl ne sont pas nécessairement disponibles au moment de l'exécution, en fonction de qui utilise le projet et sur quelle plate-forme.Comment déterminer si un JNI (jogl) est disponible au moment de l'exécution?

Actuellement, nous demandons simplement à l'utilisateur de spécifier s'il veut utiliser OpenGL, mais il serait évidemment beaucoup plus agréable d'utiliser OpenGL par défaut et de revenir au rendu logiciel lorsqu'il n'est pas disponible. Les bibliothèques de traitement ne semblent pas rendre cela facile, vous êtes seulement supposé spécifier un rendu une fois, et changer de moteur de rendu donne ... un comportement nouveau.

Une idée de savoir si les JNI nécessaires pour jogl sont disponibles et fonctionnent à l'exécution?

Répondre

2

Simple simplement essayer de charger la classe avec votre ClassLoader en utilisant loadClass et attraper une exception ClassNotFound et UnsatisfiedLinkError pour faire la fonctionnalité de secours.

+0

Si vous voulez savoir si les bibliothèques natives sont disponibles, vous voulez capturer UnsatisifiedLinkError. – JesperE

0

L'autre moyen de s'assurer que vous utilisez Jogl est de déployer via JNLP. Vous pouvez inclure Jogl en tant que dépendance à distance et le programme de lancement Java récupérera automatiquement la version native appropriée.

Questions connexes