گنو کلاس پث

**گنو کلاس‌پث** پروژه‌ای با هدف ایجاد پیاده‌سازی نرم‌افزار آزاد از کلاس کتابخانهٔ جاوا برای جاوا است. فارغ از حجم عظیم کتابخانهٔ که باید خلق می‌شد، تاکنون بیشتر کار صورت پذیرفته‌است، که شامل سوینگ، کوربا و سایر بخش‌های اصلی است. توسعه‌دهندگان کلاس‌پث بیشتر کلاس‌ها را از جی۲ اس‌ایی ۱٫۴ و ۵٫۰ پیاده‌سازی نموده‌است. اکنون کلاس‌پث قادر به اجرای برنامه‌های مشهور جاوا مانند ووز و اکلیپس می‌باشد.

گنو کلاس‌پث از برنامه‌های با اولیت بالای پروژه گنو است. اگرچه کد منبع پیاده‌سازی «رسمی» جاوا از سوی سان میکروسیستمز (خریداری شده توسط اوراکل) در دسترس است، اما اجازه‌نامهٔ آن اجازهٔ هیچگونه جایگزینی را نمی‌دهد. این موضوع، مانعی بزرگ برای پروژه‌های خلاقانه است که اجازه پیشرفت بدون این جایگزینی را نمی‌دهد. جامعهٔ توسعهٔ گنو کلاس‌پث، از انستیتوهایی تشکیل شده که بر روی ماشین مجازی جاوا تحقیق می‌نمایند. کلاس‌پث گنو بخشی از بنیاد نرم‌افزار آزاد است که در ابتدا به صورت موازی با جی‌سی‌جی توسعه‌داده می‌شد. این کار به خاطر عدم سازگاری اجازه‌نامه‌ها بود. بعدها این دو پروژه در هم ادغام شدند.

## اجازه‌نامه
«کلاس‌پث گنو» تحت اجازه‌نامه عمومی همگانی گنو به همراه استثناهایی منتشر شد که خود اجازه‌نامه نرم‌افزار آزاد. همهٔ کدها به صورت رسمی، متعلق به بنیاد نرم‌افزار آزاد است.

## استفاده‌ها
کلاس‌پث گنو توسط بسیاری از پیاده‌سازی‌های آزاد جاوا مانند (کافی، سابل‌وی‌ام، جام‌وی‌ام، کاکائو، جیکس اروی‌ام، وی‌ام‌کیت) استفاده شده‌است. این بدان خاطر است که تمام ماشین‌های مجازی جاوا که تمام خصوصیات را داراست باید از کتابخانهٔ استاندارد استفاده نماید.
بعضی از سایر استفاده‌ها عبارتند از:
* کامپایلر گنو برای جاوا، که که کدهای جاوا را قادر به اجرای مستقل می‌نماید
* برای اجرای اپلت جاوا از خط فرمان در صورت عدم پشتیبانی از سوی مرورگر GCJAppletViewer
* ای‌کی‌وی‌ام.نت که جاوا را با چارچوب دات نت یکپارچه شده‌است
* جی‌نود، یک سیستم‌عامل برای اجرای برنامه‌های جاوا. این سیستم با تنها استفاده از جاوا و اسمبلر نوشته‌شده است
* ماشین‌های مجازی مخصوصی مانند جااواس برای ایجاد یک‌پارچگی زبان‌برنامه‌نویسی ابرون و جاماییکا وی‌ام برای ایجاد سیستم‌های مطمئن بی‌درنگ
* ماشین‌های مجازی برای محاسبات توزیعی در خوشه‌هایی تا ۱۲۸ پردازشگر که بر روی میرنت اجرا می‌شود (http://www.eecg.toronto.edu/jupiter/)
* پروژهٔ چای یخی از کلاس‌پث استفاده می‌نماید که به عنوان جایگزین جی‌دی‌کا باز است.

## تاریخچه
کلاس‌پث گنو از سال ۱۹۹۸ با ۵ توسعه‌گر شروع به کار نمود. در طول زمان با چندین پروژه با هدف مشابه ادغام شد(کافی، لایب جی‌سی). در گذشته کلاس‌پث گنو از سوی ماشین مجازی خودش (جافر) عرضه کرد. از زمانی که کلاس‌پث به عنوان کتابخانهٔ پایه انتخاب شد بین بسیاری از پروژه‌های مختلف به اشتراک گذاشته‌شد، این ماشین مجازی کمتر و کمتر مورد پشتیبانی قرار گرفت.

بعد از پیاده‌سازی بخش عظیمی از رابط برنامه‌نویسی جاوا ۱٫۴، برنامه بیشتر بر محور شناسایی خطاها بود تا تکیه بر پیاده‌سازی رابط برنامه‌نویسی. در ۲ آبان ۱۳۸۵، تعهد به پیاده‌سازی آخرین کلاس نگارش ۱٫۴ داده‌شد.HTMLWriter. سرعت توسعه که بر مبنای تعداد خط کد منبع در روز به بالاترین حد خودش در سال ۲۰۰۶ رسید.

نام گنو کلاس پث از سوی برادلی ام کان به یکی از توسعه‌دهندگان اولیه، پاول فیشر، داده‌شد. در آن زمان مسئلهٔ پیاده‌سازی آزاد جاوا مورد نگرانی بود. چراکه توسعه‌دهندگان از احتمال شکایت سان، مالک علامت تجاری جاوا هراس داشتند. کان نام **$CLASSPATH** را پیشنهاد داد؛ که متغیر محیطی بود که از سوی بسیاری از سیستم‌ها برای نشان دادن موقعیت کتابخانهٔ جاوا استفاده می‌شد. در واقع راهی برای صدا زدن جاوا بدون استفاده از نامش بود. فیشر و باقی توسعه‌گران از علامت *$* در ابتدا این نام و نیز حروف بزرگ بودن تمام کلمه، راضی نبودند که نهایتاً با تغییراتی منجر به نام معروف *Classpath* شد.

## گروه توسعه
گروه توسعهٔ بر پروژه، شامل ۷۰ توسعه‌دهنده بود که اکنون به ۲۰ نفر کاهش یافته‌است. یک نفر نیز مسئول نگاهداری بود. این مسئول از جنبه‌های حقوقی پروژه مواظبت می‌نمود و انتشارهای معمول برنامه را بر طبق مدیریت کیفیت، مدیریت می‌نمود. وی همچنین مسئول اعطای اجازهٔ دسترسی به سی‌وی‌اس بود.

بر خلاف سایر پروژه‌ها، گنو کلاس پث دارای هیچگونه سلسله مراتبی نبود. این کار نیازمند توانایی‌های فنی بود و هیچ‌گونه تقسیم کاری وجود نداشت. همهٔ تغییرات صورت گرفته بر روی کد به فهرست‌های بحث ارسال می‌شد. در آنجا بود که هر فردی می‌توانست مخالفت خود را ابراز نمود. هر روز پنج تا هشت اصلاحیه بر روی کدها صورت می‌گرفت.

این پروژه دارای ابزار آزمایش مخصوصی به خودش بود(مائو). این ابزار توسعه بیش از ۱۷۵٬۰۰۰ آزمایش انجام داد. این آزمایش‌ها به صورت روزانه برای ایجاد اطمینان بر سازگاری کلاس‌ها با رابط برنامه‌نویس کلاس‌های سان صورت می‌گرفت.
پیشرفت کتابخانه گنو کلاس پث به دنبال پیاده‌سازی کامل جی۲اس‌ایی ۱٫۴. ۵٫۰ است.

## پیوند
* 
* اسناد، به همراه کد منبع
* آزمایش سازگاری
* مقاله درباره‌ی وضعیت و همکاری‌های کلاس‌پث گنو توسط توسعه‌دهندگان
* توسعه‌ی نفوذپذیری

## منابع

رده:پلت‌فرم جاوا
رده:کتابخانه‌های جاوا
رده:نرم‌افزارهای پروژه گنو