كيفية تحديد ما إذا كان JNI (jogl) متوفر في وقت التشغيل؟

StackOverflow https://stackoverflow.com/questions/172869

سؤال

وأنا أعمل على مصدر رمز مشروع التصور يستخدم مكتبة نواة معالجة. المكتبة معالجة ديها الخيار لاستخدام OpenGL المكتبة jogl لتقديم الرسومات مما يحسن حقا الأداء. ومع ذلك، فإن JNI الملفات التي يستخدمها jogl لا تتوفر بالضرورة في وقت التشغيل، وهذا يتوقف على من هو استخدام المشروع وعلى أي منصة.

وحاليا لدينا فقط للمستخدم تحديد إذا كانوا يريدون استخدام برنامج OpenGL، ولكن سيكون من الواضح أجمل بكثير لو استطعنا استخدام برنامج OpenGL افتراضيا وتقع فقط إلى تقديم البرنامج عندما أنه غير متوفر. لا يبدو المكتبات تجهيز لجعل هذا سهلا، كنت من المفترض فقط لتحديد العارض مرة واحدة، وعارضين تغيير يعطي ... سلوك الرواية.

وأي فكرة عن كيفية معرفة إذا هي JNIs اللازمة لjogl المتاحة والعمل في وقت التشغيل؟

هل كانت مفيدة؟

المحلول

وبسيط مجرد محاولة لتحميل الطبقة مع ClassLoader باستخدام <لأ href = "http://java.sun.com/javase/6/docs/api/java/lang/ClassLoader.html#loadClass(java.lang .String) "يختلط =" نوفولو noreferrer "> loadClass وقبض على استثناء ClassNotFound وUnsatisfiedLinkError للقيام ظائف تراجع.

نصائح أخرى

والطريقة أنيق أخرى للتأكد من أنك تحصل على استخدام Jogl هو نشر عبر JNLP. يمكنك تضمين Jogl ك تبعية النائية وسوف قاذفة جافا جلب النسخة الأصلية المناسب تلقائيا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top