Как определить, доступен ли JNI (jogl) во время выполнения? - PullRequest
1 голос
/ 06 октября 2008

Я работаю над проектом визуализации исходного кода , который использует библиотеку ядра обработки. В библиотеке обработки есть возможность использовать библиотеку jogl OpenGL для рендеринга графики, которая действительно повышает производительность. Однако файлы JNI, которые использует jogl, не обязательно доступны во время выполнения, в зависимости от того, кто использует проект и на какой платформе.

В настоящее время мы просто просим пользователей указать, хотят ли они использовать OpenGL, но было бы гораздо приятнее, если бы мы могли использовать OpenGL по умолчанию и использовать программный рендеринг только тогда, когда он недоступен. Библиотеки обработки, кажется, не делают это простым, вы должны указывать рендерер только один раз, а смена рендерера дает… новое поведение.

Есть идеи, как выяснить, если необходимые JNI для jogl доступны и работают во время выполнения?

Ответы [ 2 ]

2 голосов
/ 06 октября 2008

Просто попробуйте загрузить класс с помощью ClassLoader, используя loadClass и перехватить исключение ClassNotFound и UnsatisfiedLinkError, чтобы выполнить функцию восстановления.

0 голосов
/ 22 сентября 2009

Другой удобный способ убедиться, что вы используете Jogl, - это развертывание через JNLP. Вы можете включить Jogl в качестве удаленной зависимости, и средство запуска Java автоматически выберет соответствующую собственную версию.

...