انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید

نویسنده موضوع: استفاده از کتاب خانه های غیر جاوایی در برنامه های جاوا  (دفعات بازدید: 4699 بار)

0 کاربر و 3 مهمان درحال مشاهده موضوع.

آفلاین khajavi

  • Sr. Member
  • *
  • ارسال: 361
  • جنسیت : پسر
    • کافه ی گنو/لینوکس
برای این ترم که C++ داشتیم برنامه ی Eclipse CDT را دانلود کردم. (یک IDE برای C++ هست) نکته ی قابل توجه این بود که این برنامه با جاوا نوشته شده بود اما interface اون GTK بود و از swing استفاده نشده بود. (البته اگه اشتباه نکنم.)
خوب حالا سوال من اینه.
۱−که چجوری میشه در برنامه های جاوا از GTK به جای swing استفاده کرد.
۲− و به طور کلی آیا میشه از کتابخانه های موجود در Linux در جاوا استفاده کرد؟

آفلاین Behnam Golds

  • High Hero Member
  • *
  • ارسال: 1368
  • جنسیت : پسر
پاسخ به: استفاده از کتاب خانه های غیر جاوایی
« پاسخ #1 : 21 فروردین 1387، 04:26 ق‌ظ »
این  مبحث  مربوط  میشه  به  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   ترجمه  کردم  ،  البته  ترجمه ی  شیوایی  نیست    چون  با عجله  انجام  شد  ولی  از  هیچی بهتره  ،  اگر  احتیاج داشتید  براتون  آپ میکنم.

و  در نهایت  برای  موارد  دیگه  گوگل!


« آخرین ویرایش: 21 فروردین 1387، 04:29 ق‌ظ توسط Behnam Golds »

آفلاین کرگدن

  • High Hero Member
  • *
  • ارسال: 1769
  • جنسیت : پسر
درود

انقدر پیچیدش نکنید
درسته که با jni این کار رو انجام میتونید انجام بدید ولی الان آمادش هست
http://java-gnome.sourceforge.net/

همچنین شما می تونید از libswt-gtk2.jar  استفاده کنید که awt رو به طور آزاد پیاده سازی کرده و gtk هست

در ضمن شما در جاوا می تونید look and feel  های متفاوتی داشته باشید

که Look & Feel   
eclipse هم jgoodies هست و به gtk ربطی نداره و نیازی هم به jni ندارید

ولی در کل شما می تونید با jni توابع و کتابخونه های زبان های دیگه مثل سی و اسمبلی رو فراخونی کنید ( و خیلی امکانات دیگه )

« آخرین ویرایش: 22 فروردین 1387، 12:36 ق‌ظ توسط کرگدن »

 Vaio-VPCCW - core i7 -Nvidia GT320M -4GB -OS Fedora 20/ kde 4.12
Vbox: Centos 6.4 (server) / Archlinux

آفلاین Behnam Golds

  • High Hero Member
  • *
  • ارسال: 1368
  • جنسیت : پسر
پاسخ به: استفاده از کتاب خانه های غیر جاوایی
« پاسخ #3 : 22 فروردین 1387، 12:41 ق‌ظ »
عذر  میخوام  کرگدن  جان  ،  یعنی  این  پیاده سازی  رو  انجام  دادن  و بصورت  ساده تر  در اختیار  برنامه نویس  قرار  دادن  ؟  چون  همونطور  که میدونید  استفاده  از  jni   یکم  پیچیدست...
  تا  اونجایی  که   من میدونم  تنها  راه  ممکن  همون  jni    هست   و کلی  هم سر  پیاده سازی ها ی  مختلفش  درگیری  هست...   یعنی  با  این  روش   اومدن   یک  لایه  روی  jni   قرار  دادن ؟    درست  متوجه  شدم ؟ 
« آخرین ویرایش: 22 فروردین 1387، 12:48 ق‌ظ توسط Behnam Golds »

آفلاین کرگدن

  • High Hero Member
  • *
  • ارسال: 1769
  • جنسیت : پسر
عذر  میخوام  کرگدن  جان  ،  یعنی  این  پیاده سازی  رو  انجام  دادن  و بصورت  ساده تر  در اختیار  برنامه نویس  قرار  دادن  ؟  چون  همونطور  که میدونید  استفاده  از  jni   یکم  پیچیدست...
  تا  اونجایی  که   من میدونم  تنها  راه  ممکن  همون  jni    هست   و کلی  هم سر  پیاده سازی ها ی  مختلفش  درگیری  هست...   یعنی  با  این  روش   اومدن   یک  لایه  روی  jni   قرار  دادن ؟    درست  متوجه  شدم ؟ 
بله
پیاده سازی کردن و کلاس هارو در اختیار کاربر ها قرار دادن
اگر دریافتش کنید هدرفایل ها و سور س کد های سی رو می تونید ببینید

 Vaio-VPCCW - core i7 -Nvidia GT320M -4GB -OS Fedora 20/ kde 4.12
Vbox: Centos 6.4 (server) / Archlinux

آفلاین Behnam Golds

  • High Hero Member
  • *
  • ارسال: 1368
  • جنسیت : پسر
ایول   چه  خوب    \\:D/    ...  مرسی .  همراهی  خوبی  بود   ;)    .   حالا  این  همراه  در  حلقه ی  اوبونتو  همون    ؛ نون به هم  قرض دادن  خودمونه ؛   ؟!    ;)   در هر صورت از  توضیحاتت ممنونم.

آفلاین khajavi

  • Sr. Member
  • *
  • ارسال: 361
  • جنسیت : پسر
    • کافه ی گنو/لینوکس
من که کف کردم. عجب کارایی که نمیشه کرد تو این جاوا.
اون اوایل فکر می کردم که جاوا دارای کتابحانه ی بسته ای هست. و بس.

راستی استفاده از این روش هایی که می گید به راحتی استفاده از کتابخانه های زبان سی و سی پلاس پلاس در خود همان زبان ها هست.؟
سوالم را فهمیدید؟
منظورم اینه که توی سی و سی پلاس پلاس راحت می تونیم از کتاب خانه هامون استفاده کنیم. حالا توی جاوا اگه بخواییم از کتابخانه های سی و سی پلاس پلاس استفاده کنیم راحت این کار انجام میشه یا نه؟

ولی عجب جاوا فکرایی به سرش زده ها. \\:D/ \\:D/ \\:D/ \\:D/

آفلاین کرگدن

  • High Hero Member
  • *
  • ارسال: 1769
  • جنسیت : پسر
من که کف کردم. عجب کارایی که نمیشه کرد تو این جاوا.
اون اوایل فکر می کردم که جاوا دارای کتابحانه ی بسته ای هست. و بس.

راستی استفاده از این روش هایی که می گید به راحتی استفاده از کتابخانه های زبان سی و سی پلاس پلاس در خود همان زبان ها هست.؟
سوالم را فهمیدید؟
منظورم اینه که توی سی و سی پلاس پلاس راحت می تونیم از کتاب خانه هامون استفاده کنیم. حالا توی جاوا اگه بخواییم از کتابخانه های سی و سی پلاس پلاس استفاده کنیم راحت این کار انجام میشه یا نه؟

ولی عجب جاوا فکرایی به سرش زده ها. \\:D/ \\:D/ \\:D/ \\:D/

هدف jni این بوده که اگه شما

1-در مواردی که کتابخانه کلاس استاندارد جاوا دارای قابلیت های مورد نظر برنامه نویس نیست.
2-بر نامه نویس می خواهد با برنامه ای که قبلاً با زبان دیگری نوشته شده است ، ارتباط برقرار کرده واز آن استفاده کند.
3-برنامه نویس قصد دسترسی به کتابخانه های زبان دیگری را دارد.
4- در مواردی که احتیاج به کد نویسی سطح پایین می باشد.


راحت بودنش به راحتی استفاده از کلاس ها و کتابخانه های جاوا نیست ولی بعضی وقت ها مجبوری و راه دیگه ای نداره
ولی محیط خوبی داره و حتی می تونی exception های زبان دیگه رو هم دریافت کنی و مدیریت کنی
خیلی امکانات مناسب و خوبی داره
ولی اکیداً توصیه می شه استفاده نشه ( مگر جایی که مجبوری)
چون همه قابلیت های جاوا رو ممکنه از دست بدی
مستقل از پلتفرم بودن
ساختار مطمئن جاوا
سازگاری

اینجا بیشتر توضیح دادم
http://forum.codecorona.com/showthread.php?tid=605

 Vaio-VPCCW - core i7 -Nvidia GT320M -4GB -OS Fedora 20/ kde 4.12
Vbox: Centos 6.4 (server) / Archlinux

آفلاین khajavi

  • Sr. Member
  • *
  • ارسال: 361
  • جنسیت : پسر
    • کافه ی گنو/لینوکس
گرگدن جان خیلی ممنون.
راستی چیزی که باعث شده من مجذوب جاوا بشم استقال پلتفرم اون نیست بلکه امنیت و syntax بسیار عالی و قابل اجرا بر روی هر دستگاه و .... هست.
برای همین زیاد برای من مهم نیست که portable باشه یا نه.

آفلاین کرگدن

  • High Hero Member
  • *
  • ارسال: 1769
  • جنسیت : پسر
گرگدن جان خیلی ممنون.
راستی چیزی که باعث شده من مجذوب جاوا بشم استقال پلتفرم اون نیست بلکه امنیت و syntax بسیار عالی و قابل اجرا بر روی هر دستگاه و .... هست.
برای همین زیاد برای من مهم نیست که portable باشه یا نه.


قابل اجرا بودن رو هر دستگاه به دلیل همون مستقل از پلتفرم بودنش هست :)

استفاده از jni  هم امنیت رو پایین میاره

برای همین توصیه میشه تا جایی که ممکنه از کتابخانه های جاوا استفاده بشه

زبان هایی مثل سی امنیت پایینتر ( امکان اشتباه بیشتر ) دارند و وقتی شما از اونها استفاده کنید دیگه امنیت جاوا رو از دست می دید :)
امنیت منظورم security نیست بلکه صحت اجرای برنامه و ساختاری هست که کمترین امکان مواجه شدن با مشکل رو داره :)

 Vaio-VPCCW - core i7 -Nvidia GT320M -4GB -OS Fedora 20/ kde 4.12
Vbox: Centos 6.4 (server) / Archlinux