View Full Version : مفاهیم اولیه jvm jre ؟
nargesi
پنج شنبه 31 فروردین 1385, 20:04 عصر
سلام دوستان
من مدتی جاوا می خونم اما هنوز در مفاهیم اولیه مشکل دارم
1- لطفا در مورد کلمات jvm, jre بایت کد و اگر چیز ابتدایی دیگری به نظرتان میرسد توضیح دهید که کی مثلا بایت کد تولید میکنه کی استفاده می کنه (نه اینکه مثلا بگین jvm ماشین مجازی جاوس و یا jre محیط اجرایی)یکم واضح توضیح بدین لطفا
2- آدرس فیزیکی jvm , jre چیه؟(اگر jdk در آدرس "C:\Program Files\Java\jdk1.5.0_03" باشد)
3-کامپایلر جاوا چیه(وکجاس) اینترپرتورش چیه؟(وکجاس)
4- اگر مثلا یک فایل .class داشتیم برای اجرایش چی لازمه؟(jvm ..) ؟
5-java home ,path که set می کنیم چه کار می کنن؟و آدرس چین که set می کنیم؟
ممنون
Argonod
پنج شنبه 31 فروردین 1385, 23:58 عصر
بایت کد توسط javac که کامپایلر جاوا هست تولید میشه و در دایرکتوری C:\Program Files\Java\jdk1.5.0_03\lib قرار داره. هدف از تولید بایت کد انتقال آسان برنامه شما به یک سیستم و محیط دیگه که قابلیت اجرای برنامه شما را دارا میباشد (یعنی در آن سیستم jvm نصب است) میباشد.
بعد از ایجاد بایت کد اینترپرتر java آن را ترجمه کرده و به زبان ماشین تبدیل میکند(یه صورت موقتی) که قابل اجرا برای سیستم عامل شما میباشد این اینترپرتر در همان دایرکتوری قرار داره که کامپایلر هست.
از جایی که بایت کد به زبان ماشین تبدیل میشه و بعد اجرا میشه تماما وظیفه JVM هست که در واقع در سیستم شما به عنوان java نصب هست.
set کردن path برای جاوا در واقع کتابخانه و دستورات جاوا را به صورت عمومی و قابل اجرا در تمام درایوها و دایرکتوری های موجود در سیستم شما در میاره یعنی میتونید برنامه را در هر جایی از سیستمتان ذخیره کنید و از همانجا آن را اجرا کنید.
برای برنامه نویسان j2se به نظر من set کردن C:\Program Files\Java\jdk1.5.0_03\lib به عنوان path کافی هستش.
امیدوارم که دوستان اگه اشتباهی داشتم منو تصحیح کنند.
nargesi
جمعه 01 اردیبهشت 1385, 07:25 صبح
این چیزایی که نوشتین به نظر میاد به جای lib باید bin بکار برد حداقل من که path در مسیر C:\Program Files\Java\jdk1.5.0_03\bin گذاشتم وشاید مسیر کامپایلر جاوا هم شما منظورتون bin بوده
پس کامپایلر بایت کد درست میکنه(بایت کد همون چیزی که تو فایل class. است؟) وبعد اینترپرتور به زبان ماشین در میاره .میشه دوباره کار jvm توضیح بدین؟ jre چه کار میکنه؟
persianshadow
جمعه 01 اردیبهشت 1385, 08:27 صبح
درباره jre قبلا بحث شده. مخفف java runtime environment هست. فرض کن شما یک برنامه
نوشتی و حالا می خوای اونو بدی به کاربر به نظرت کاربر باید jdk نصب کنه ؟! خب جواب نه هست
بنابراین jre تنها شامل مفسر جاوا و همچنین کلاس های است که برنامه های جاوا برای کار به ان
ها احتیاج پیدا می کنند. یعنی با نصب این برنامه چند مگا بایتی بر روی کامپیوتر کاربر اجازه ا
جرای برنامه های جاوا رو به اون می دی.
zehs_sha
جمعه 01 اردیبهشت 1385, 10:19 صبح
یک برنامه در جاوا هم ترجمه و هم تفسیر مىشود، شما ابتدا برنامه را به یک زبان میانى با نام کدبایتى جاوا (Java bytecodes) کامپایل می کنید.
کدهاى مستقل از محیط، بوسیله مفسر (Interpreter) در یک محیط جاوا،ترجمه مىشوند. مفسر(JVM)، هر دستور کدبایتى جاوا را تجزیه کرده و آن را روى کامپیوتر اجرا مىکند. عمل ترجمه فقط یک بار انجاممىشود. عمل تفسیر در هر بار اجرای برنامه اتفاق مىافتد.مىتوان کدبایتى جاوا را مانند دستورات زبان ماشین براى ماشین مجازى جاوا (JVM)در نظر گرفت.
nargesi
جمعه 01 اردیبهشت 1385, 16:33 عصر
یعنی وقتی می نویسیم javac کامپایلر جاوا را صدا می کنیم که ربطی هم به jvm نداره و گفتین که jvm مفسر جاواست که جز jre هم هست.میشه آدرس فیزیکی jre بگید کجاست و jvm کدوم قسمتشه؟ یعنی گفتین اگه یه فایل class. داشتیم و خواستیم اینو به کسی بدیم شخص باید jre داشته باشه ما به همراه این فایل class. کدوم قسمت jdk رو باید به شخص بدیم؟
Argonod
جمعه 01 اردیبهشت 1385, 17:10 عصر
در مورد دایرکتوری ممنون که منو تصحیح کردی. اما در مورد مساله آدرس فیزیکی که دنبالش میگردی یه مثال میزنم که مثلا اگه یه فایل rm داشته باشی (که میدونیم با RealPlayer باز میشه )و به کسی بدی که RealPlayer نداشته باشه خب نمیتونه اجراش کنه و اول باید اونو نصب کنه.
برای اجرای کلاسهای جاوا فقط کافیه که jre (که شامل jvm و کلیه کتابخانه های لازمه و مفسر مربوطه است) رو سیستم client نصب باشه. بعد شما کلاس فایل خودتو بهش بده که اونم از طریق IDE یا Command Prompt اونو اجراش میکنه.
nargesi
جمعه 01 اردیبهشت 1385, 20:04 عصر
از راهنماییاتون ممنون
اما من آخر نفهمیدم که مثلا کجای jdk من jre قرار داره و jvm که انگار داخل jre قرار داره کجاست.داخل jdk یک فولدر به اسم jre هست(که حجمی حدود 80m داره) آیا این همون jre که می گین؟
Argonod
جمعه 01 اردیبهشت 1385, 21:27 عصر
میشه بگی چرا دنبال این قضیه هستی شاید بهتر بشه کمک کرد. من متوجه نمیشم که منظورت چی هست. آیا دنبال فایل بخصوصی هستی که وظیفه jvm رو به عهده داره که به عقیده من وقت طلف کردن هستش.
nargesi
شنبه 02 اردیبهشت 1385, 19:04 عصر
خب من فکر کردم که ندونستن اینا غیر عادیه و همه می دونن اینا جای فیزیکیشون کجاس مثل jdk که همه فکر کنم بدونن کجاس اما من اصلا نمی دونم jvm یه فایل یا یه سری فایل واینا اما انگار زیاد مهمم نیست حالا اگر ممکن این چند تا سوالم که من از این صحبتا برداشت کردم و هنوز درست نمی دونم درست یا غلطیشو بگین اگرم غلط دیگه خودم درستشو پیدا می کنم
1- کامپایلر جاوا از فایل جاوا ما یک فایل class. که به زبان بایت کد است می سازد
2-مفسر جاوا که همان jvm است از این بایت کد استفاده می کند و فایل زبان ماشین تولید می کند
3-اگر ما این فایل class. روی کامپیوتر دیگری ببریم و بخواهیم اجرا کنیم مفسر جاوا وو یک سری کلاس دیگه لازم داریم و کل jdk لازم نیست که به این قسمت jre میگن
بازم ممنون از راهنماییاتون
persianshadow
شنبه 02 اردیبهشت 1385, 20:32 عصر
کاملا درست هست. در ضمن jre خودش setup داره می تونی از سایت سان دریافت کنی و اونو
فقط برای کاربر نهایت نصب کنی.
nargesi
یک شنبه 03 اردیبهشت 1385, 19:46 عصر
از کمکتون ممنون فکر می کنم متوجه شدم اینا رو
nargesi
جمعه 22 اردیبهشت 1385, 22:27 عصر
این link ها رو تازه دیدم به نظرم جالبن
http://java.sun.com/j2se/1.5.0/docs/tooldocs/#security
http://java.sun.com/j2se/1.5.0/docs/tooldocs/windows/jdkfiles.html#/jdk1.5.0/demo
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.