لینوکس، عشق، برنامه نویسی

لینوکس، عشق، برنامه نویسی

در این وبلاگ مطالبی درباره سیستم عامل لینوکس و همچنین درمورد برنامه نویسی و کامپیوتر مینویسم.

شنبه, ۳۰ بهمن ۱۴۰۰، ۱۲:۰۱ ق.ظ

 

فصل دوم

 

Java Development kit (یا به اختصار jdk) چیست؟

 

همانطور که خیلی از شماها، بهتر از من می دانید،  زبان جاوا، بطور همزمان، هم یک زبان کامپایل شدنی هست، و هم یک زبان تفسیر شونده. به عبارت دیگر، زبان جاوا هم دارای کامپایلر می باشد و هم دارای مفسر. حالا در این فصل می خواهیم به مفهوم java development kit یا به اختصار JDK بپردازیم و ببینیم که کامپایلر  و مفسر جاوا در کجا قرار دارند.

 

واقعیت این است که زبان برنامه نویسی جاوا فقط یک کامپایلر تنها نیست، بلکه مجموعه ای از ابزار ها(نرم افزار ها) هست که در کنار هم قرار میگیرند و java development kit را تشکیل میدهند. اصلا مفهوم واژه ی کیت یعنی مجموعه ای از ابزارها.

 

در داخل jdk ابزار های (نرم افزار های) مختلفی قرار دارند که هر کدام نقشی را در ساختن و اجرا کردن و منتشر کردن برنامه های جاوا ایفا می کنند. برای مثال، ابزار javac  وظیفه ی کامپایل کردن سورس کد رو برعهده داره، و یا ابزار java وظیفه ی اجرای برنامه های جاوا رو بر عهده داره.

یا مثلا ابزار javadoc وظیفه ی خواندن داکیومنت ها از سورس کد و تولید داکیومنت رو برعهده داره. یعنی ما می توانیم مجموعه ی از سورس کد ها رو به این ابزار بدیم، و این ابزار میتونه تمام داکیومنتیشن های داخل سورس هارو استخراج کنه و یک فایل html به عنوان داکیومنت برای ما تولید کنه.

 

و یا مثلا ابزار jar یکی دیگه از ابزارهایی هست که داخل jdk قرار داره و ما بوسیله ی این ابزار میتونیم از پروژه ی خودمون یک فایل jar تولید بکنیم.

 

حالا، مجموعه ی این ابزار ها(نرم افزارها) در کنار هم قرار می گیرند و jdk رو تشکیل می دهند.

 

و در پایان، مهمترین نکته ای که باید بدونید این هست که:

وقتی میگم ابزار، منظور من همون نرم افزار هست. یعنی هر کدوم از این ابزار ها در واقع یک نرم افزار مستقل هستند (یعنی یک فایل اجرایی هستند) که به زبان C نوشته شدن!! به عبارت دیگر می شود گفت که  زبان جاوا رو با C نوشتن! 

این نرم افزار ها، GUI یا رابط گرافیکی ندارند و برای استفاده از اون ها نیاز به ترمینال (در لینوکس) و کامند پرامپت (در ویندوز) دارید. 

 

سوالی که پیش میاد اینه: این ابزار هارو کجا میشه دید؟

جواب: داخل پوشه ی JDK

 

باید برید به داخل پوشه ی jdk و سپس برید به داخل پوشه ی bin

bin مخفف binary هست و در پوشه ی bin شما میتونید فایل اجرایی تمام ابزار های jdk (از جمله فایل اجرایی کامپایلر و مفسر جاوا) رو ببینید که با زبان C نوشته شده اند.

 

ذکر این نکته لازم است که jdk که در عکس می بینید ورژن 1.8 می باشد

 

 

 

خب همونطور که در عکس میبینید، jdk ابزار های زیادی داره، همانطور که در بالا هم گفتم، هر کدوم از این ابزار ها در واقع یک نرم افزار مستقل هستند (یک فایل اجرایی هستند) که به زبان C نوشته شدن.

 

چندتا ابزار در تصویر میبینید؟ من چندتاشو نام می برم:

 

۱- java که همون مفسر یا interpreter جاوا هستش و کارش اینه که bytecode هارو اجرا کنه ( همون فایل های class. رو )

۲- javac که همون کامپایلر جاوا هستش و وظیفه ی اون، کامپایل سورس کد جاوا (java.) به فایل های بایت کد (class.) هست.

۳- jar که همون ابزاری هستش که بوسیله ی اون فایل های jar. رو تولید میکنیم

۴- javadoc که بوسیله ی اون از روی سورس ها میتونیم داکیومنت تولید کنیم

۵- و سایر ابزار ها

 

زمانی که شما از IDEها (مثل eclipse ) استفاده می کنید، نه کامپایلر رو می بینید و نه مفسر رو. در واقع اکلیپس در پشت پرده، از این ابزارهای jdk استفاده کرده و سورس کد را کامپایل، و سپس فایل های class. تولید شده را با استفاده از مفسر جاوا اجرا می کند و نتیجه را به شما نشان می دهد.

 

مطلب بعدی که باید بدونید این هست که:
هر کدام از این ابزارها،  چندین فلگ (flag) دارن. برای دیدن فلگ های هر کدام از اینها کافیه که ترمینال(در لینوکس) و یا cmd (در ویندوز) رو باز کنید و از دستور help-  استفاده کنید.

مثلا برای دیدن فلگ های jar از دستور jar -help استفاده کنید که خروجی زیر رو به شما میده.

 
Illegal option: h
Usage: jar {ctxui}[vfmn0PMe] [jar-file] [manifest-file] [entry-point] [-C dir] files ...
Options:
    -c  create new archive
    -t  list table of contents for archive
    -x  extract named (or all) files from archive
    -u  update existing archive
    -v  generate verbose output on standard output
    -f  specify archive file name
    -m  include manifest information from specified manifest file
    -n  perform Pack200 normalization after creating a new archive
    -e  specify application entry point for stand-alone application
        bundled into an executable jar file
    -0  store only; use no ZIP compression
    -P  preserve leading '/' (absolute path) and ".." (parent directory) components from file names
    -M  do not create a manifest file for the entries
    -i  generate index information for the specified jar files
    -C  change to the specified directory and include the following file
If any file is a directory then it is processed recursively.
The manifest file name, the archive file name and the entry point name are
specified in the same order as the 'm', 'f' and 'e' flags.

Example 1: to archive two class files into an archive called classes.jar:
       jar cvf classes.jar Foo.class Bar.class
Example 2: use an existing manifest file 'mymanifest' and archive all the
           files in the foo/ directory into 'classes.jar':
       jar cvfm classes.jar mymanifest -C foo/ .
 

 

همانطور که در خروجی بالا می بینید، ابزار jar، فلگ های زیادی داره،   c  -t   -x-   و سایر فلگ ها.

 

ما بیشتر با دوتا ابزار jdk کار خواهیم داشت. یکی ابزار javac که کامپایلر جاوا هست و دیگری ابزار java که مفسر جاوا هست.  هر کدام از این ها، تعدادی فلگ دارن ( می تونید دستور help- رو بزنید و همه ی فلگ هاش رو ببینید). دوتا از فلگ ها برای ما مهمه. یکی فلگ classpath-   و دیگری فلگ   sourcepath-  که در فصل های بعد توضیح میدم.

 

 

و نکته ی پایانی اینکه:

اگر میخاید در مورد هر کدوم از این ابزار ها اطلاعات کسب کنید و توضیحات کامل فلگ ها رو، بهتره برید به وبسایت خود اوراکل به این ادرس

 

 

بازگشت به فهرست اصلی

نظرات (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی