سؤال

أعني، كيف تحدد Java البروتوكولات المتاحة؟أقوم بتشغيل بعض التعليمات البرمجية من داخل Eclipse، وهي تعمل بشكل جيد.ثم أقوم بتشغيل نفس الكود من خارج Eclipse، وأحصل على "بروتوكول غير معروف" MalformedURLException.ربما يتعلق الأمر بقاعدة التعليمات البرمجية، أو شيء من هذا؟أي تلميحات ستكون مفيدة.

شكرًا!

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

المحلول

يتم عمل حل البروتوكول بواسطة URLStreamHandler, ، والتي يتم تخزينها في URL.handlers بواسطة البروتوكول بالأحرف الصغيرة.المعالج، بدوره، يتم إنشاؤه بواسطة URLStreamHandlerFactory في URL.factory.ربما الكسوف هو القرد مع ذلك؟

قليلا من ال منشئو عناوين URL خذ معالجات الدفق ويمكنك ضبط المصنع بها URL.setURLStreamHandlerFactory.

وهنا وظيفة على شبكة الإنترنت حول تطوير معالجات البروتوكول.

نصائح أخرى

تم وصف طريقة جافا القياسية لتعريف معالجات البروتوكول هنا:http://java.sun.com/developer/onlineTraining/protocolhandlers/

يعتمد هذا على توفر فئة معالج البروتوكول في أداة تحميل فئة التمهيد (؟).هذا لا يعمل بشكل جيد مع OSGi (وبالتالي Eclipse).يوفر OSGi غلافًا حول هذه الآلية للسماح للحزم/المكونات الإضافية بالمساهمة في معالجات البروتوكول.يرى: http://www.osgi.org/javadoc/r4v41/org/osgi/service/url/URLStreamHandlerService.html

يوفر Eclipse أيضًا بروتوكوله الخاص:Bundle-resource (iirc) والتي بالتأكيد لن تعمل خارج Eclipse.

ربما مشكلة classpath.إذا كنت تستخدم بروتوكولًا يعتمد على بعض المكتبات (جرة) التي قمت بتضمينها، ثم قمت بتصدير ملف JAR من Eclipse، فمن المحتمل ألا يتم العثور على ملفات JAR التي قمت بتضمينها في مشروعك بواسطة التعليمات البرمجية قيد التشغيل خارج Eclipse.أنت بحاجة إلى ملف بيان في الجرة الخاصة بك والذي سيشير إلى المكتبات المطلوبة.

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