انجمنهای فارسی اوبونتو
کمک و پشتیبانی => برنامهسازی => نویسنده: khajavi در 21 فروردین 1387، 03:22 قظ
-
برای این ترم که C++ داشتیم برنامه ی Eclipse CDT را دانلود کردم. (یک IDE برای C++ هست) نکته ی قابل توجه این بود که این برنامه با جاوا نوشته شده بود اما interface اون GTK بود و از swing استفاده نشده بود. (البته اگه اشتباه نکنم.)
خوب حالا سوال من اینه.
۱−که چجوری میشه در برنامه های جاوا از GTK به جای swing استفاده کرد.
۲− و به طور کلی آیا میشه از کتابخانه های موجود در Linux در جاوا استفاده کرد؟
-
این مبحث مربوط میشه به jni یعنی java native interface با این امکان میشه برنامه هایی نوشت که از امکانات یه پلتفرم خاص استفاده کنه حالا یا کتابخانه های خاصی که جاوا در اختیارت نمیگذاره یا امکانات خاص یک سیتم عامل ، که البته در این صورت دیگه برنامه هایی که تولید میشه portable نیستن و فقط تحت همون پلتفرم یا پلتفرم سازگار با اون کار میکنه ... نظری که اساتید میدن اینه که حدالامکان از یک زبان native برای اون پلتفرم استفاده بشه و استفاده از jni آخرین گزینه باشه . چون jni پیاده سازیهای مختلفی داره و ممکنه در پلتفرم های یکسان هم ناسازگاری دیده بشه...
برای اطلاعات بیشتر در مورد چیستی jni یه سر به این لینک بزنید :
http://www.iut-info.univ-lille1.fr/docs/tutorial/native1.1/index.html
در مورد کاربرد هم یه سری به این لینک بزنید :
http://www.pacifier.com/~mmead/cs510jip/jni/
چند صفحه ای هم در مورد jni ترجمه کردم ، البته ترجمه ی شیوایی نیست چون با عجله انجام شد ولی از هیچی بهتره ، اگر احتیاج داشتید براتون آپ میکنم.
و در نهایت برای موارد دیگه گوگل!
-
درود
انقدر پیچیدش نکنید
درسته که با jni این کار رو انجام میتونید انجام بدید ولی الان آمادش هست
http://java-gnome.sourceforge.net/
همچنین شما می تونید از libswt-gtk2.jar استفاده کنید که awt رو به طور آزاد پیاده سازی کرده و gtk هست
در ضمن شما در جاوا می تونید look and feel های متفاوتی داشته باشید
که Look & Feel
eclipse هم jgoodies هست و به gtk ربطی نداره و نیازی هم به jni ندارید
ولی در کل شما می تونید با jni توابع و کتابخونه های زبان های دیگه مثل سی و اسمبلی رو فراخونی کنید ( و خیلی امکانات دیگه )
-
عذر میخوام کرگدن جان ، یعنی این پیاده سازی رو انجام دادن و بصورت ساده تر در اختیار برنامه نویس قرار دادن ؟ چون همونطور که میدونید استفاده از jni یکم پیچیدست...
تا اونجایی که من میدونم تنها راه ممکن همون jni هست و کلی هم سر پیاده سازی ها ی مختلفش درگیری هست... یعنی با این روش اومدن یک لایه روی jni قرار دادن ؟ درست متوجه شدم ؟
-
عذر میخوام کرگدن جان ، یعنی این پیاده سازی رو انجام دادن و بصورت ساده تر در اختیار برنامه نویس قرار دادن ؟ چون همونطور که میدونید استفاده از jni یکم پیچیدست...
تا اونجایی که من میدونم تنها راه ممکن همون jni هست و کلی هم سر پیاده سازی ها ی مختلفش درگیری هست... یعنی با این روش اومدن یک لایه روی jni قرار دادن ؟ درست متوجه شدم ؟
بله
پیاده سازی کردن و کلاس هارو در اختیار کاربر ها قرار دادن
اگر دریافتش کنید هدرفایل ها و سور س کد های سی رو می تونید ببینید
-
ایول چه خوب \\:D/ ... مرسی . همراهی خوبی بود ;) . حالا این همراه در حلقه ی اوبونتو همون ؛ نون به هم قرض دادن خودمونه ؛ ؟! ;) در هر صورت از توضیحاتت ممنونم.
-
من که کف کردم. عجب کارایی که نمیشه کرد تو این جاوا.
اون اوایل فکر می کردم که جاوا دارای کتابحانه ی بسته ای هست. و بس.
راستی استفاده از این روش هایی که می گید به راحتی استفاده از کتابخانه های زبان سی و سی پلاس پلاس در خود همان زبان ها هست.؟
سوالم را فهمیدید؟
منظورم اینه که توی سی و سی پلاس پلاس راحت می تونیم از کتاب خانه هامون استفاده کنیم. حالا توی جاوا اگه بخواییم از کتابخانه های سی و سی پلاس پلاس استفاده کنیم راحت این کار انجام میشه یا نه؟
ولی عجب جاوا فکرایی به سرش زده ها. \\:D/ \\:D/ \\:D/ \\:D/
-
من که کف کردم. عجب کارایی که نمیشه کرد تو این جاوا.
اون اوایل فکر می کردم که جاوا دارای کتابحانه ی بسته ای هست. و بس.
راستی استفاده از این روش هایی که می گید به راحتی استفاده از کتابخانه های زبان سی و سی پلاس پلاس در خود همان زبان ها هست.؟
سوالم را فهمیدید؟
منظورم اینه که توی سی و سی پلاس پلاس راحت می تونیم از کتاب خانه هامون استفاده کنیم. حالا توی جاوا اگه بخواییم از کتابخانه های سی و سی پلاس پلاس استفاده کنیم راحت این کار انجام میشه یا نه؟
ولی عجب جاوا فکرایی به سرش زده ها. \\:D/ \\:D/ \\:D/ \\:D/
هدف jni این بوده که اگه شما
1-در مواردی که کتابخانه کلاس استاندارد جاوا دارای قابلیت های مورد نظر برنامه نویس نیست.
2-بر نامه نویس می خواهد با برنامه ای که قبلاً با زبان دیگری نوشته شده است ، ارتباط برقرار کرده واز آن استفاده کند.
3-برنامه نویس قصد دسترسی به کتابخانه های زبان دیگری را دارد.
4- در مواردی که احتیاج به کد نویسی سطح پایین می باشد.
راحت بودنش به راحتی استفاده از کلاس ها و کتابخانه های جاوا نیست ولی بعضی وقت ها مجبوری و راه دیگه ای نداره
ولی محیط خوبی داره و حتی می تونی exception های زبان دیگه رو هم دریافت کنی و مدیریت کنی
خیلی امکانات مناسب و خوبی داره
ولی اکیداً توصیه می شه استفاده نشه ( مگر جایی که مجبوری)
چون همه قابلیت های جاوا رو ممکنه از دست بدی
مستقل از پلتفرم بودن
ساختار مطمئن جاوا
سازگاری
اینجا بیشتر توضیح دادم
http://forum.codecorona.com/showthread.php?tid=605
-
گرگدن جان خیلی ممنون.
راستی چیزی که باعث شده من مجذوب جاوا بشم استقال پلتفرم اون نیست بلکه امنیت و syntax بسیار عالی و قابل اجرا بر روی هر دستگاه و .... هست.
برای همین زیاد برای من مهم نیست که portable باشه یا نه.
-
گرگدن جان خیلی ممنون.
راستی چیزی که باعث شده من مجذوب جاوا بشم استقال پلتفرم اون نیست بلکه امنیت و syntax بسیار عالی و قابل اجرا بر روی هر دستگاه و .... هست.
برای همین زیاد برای من مهم نیست که portable باشه یا نه.
قابل اجرا بودن رو هر دستگاه به دلیل همون مستقل از پلتفرم بودنش هست :)
استفاده از jni هم امنیت رو پایین میاره
برای همین توصیه میشه تا جایی که ممکنه از کتابخانه های جاوا استفاده بشه
زبان هایی مثل سی امنیت پایینتر ( امکان اشتباه بیشتر ) دارند و وقتی شما از اونها استفاده کنید دیگه امنیت جاوا رو از دست می دید :)
امنیت منظورم security نیست بلکه صحت اجرای برنامه و ساختاری هست که کمترین امکان مواجه شدن با مشکل رو داره :)