سؤال

ولقد كنت تحاول تشغيل ملف جرة - دعنا نسميها test.jar - يستخدم jconn3.jar سايبيس على نظام يونكس

ولقد خلق ملف MANIFEST.MF الذي يحتوي على التالي:

Class-Path: $SYBASE/jConnect-6_0/classes/jconn3.jar commons-net-1.3.0.jar

وهذا يعطي ClassNotFoundError. $ SYBASE هو متغير النظام الذي يشير إلى / الأراضي الفلسطينية المحتلة / sybase13. لقد حاولت أيضا ما يلي:

Class-Path: /opt/sybase13/jConnect-6_0/classes/jconn3.jar commons-net-1.3.0.jar

و

Class-Path: opt/sybase13/jConnect-6_0/classes/jconn3.jar commons-net-1.3.0.jar

ولكن، إذا كنت نسخ الملف jconn3.jar من $ SYBASE / jConnect-6_0 / الطبقات إلى نفس الدليل كما test.jar، وتحديث بلدي MANIFEST.MF ليصبح نصها كما يلي:

Class-Path: jconn3.jar commons-net-1.3.0.jar

وتشغيل التطبيق كما هو متوقع.

والآن، لقد كنت قادرا على التحقق من يعمل ملف jconn3.jar عن طريق نسخ محليا. يتضمن ملف MANIFEST.MF بلدي الطريق إلى بلدي الرئيسية من الدرجة الاولى، لذلك هذا ليس في المسألة هنا.

ما رأيك يمكن أن تكون المشكلة؟ لقد كنت أبحث في هذا الأمر لفترة طويلة جدا الآن. شكرا!

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

المحلول

والإدخالات في مسار الطبقة إما نسبة إلى JAR التي هي جزء لا يتجزأ انهم (التي قمت العمل) أو هي عناوين المواقع. لجعل مسارات مطلقة الخاص العمل، ستحتاج إلى تحويلها إلى عناوين URL، على سبيل المثال،

وfile:/opt/sybase13/...

وليس هناك آلية لاستخدام المتغيرات.

وعلى الرغم من أن مواصفات JAR لا يقول ذلك بوضوح، مطلقة عناوين مخطط file: لا يعمل في سمة فئة المسار.

نصائح أخرى

لا readed

ومتغيرات البيئة التي classloader AFAIK. ولكن هل يمكن أن تضيف جرة في برنامج التكوين

وaccoding للمواصفات الإدخالات الأقارب إلى جرة يست مطلقة:

<اقتباس فقرة>   

ومن الدرجة الاولى مسار:

     

وقيمة هذه السمة تحدد عناوين المواقع النسبية للتمديد أو المكتبات أن هذا التطبيق أو تمديد الاحتياجات. يتم فصل عناوين بمسافات واحدة أو أكثر. محمل التطبيق أو تمديد الطبقة تستخدم قيمة هذه السمة لبناء مسار البحث الداخلي.

http://java.sun.com /j2se/1.5.0/docs/guide/jar/jar.html #Manifest مواصفات

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