فهم ابزار javac, java, jar در jdk

فهم ابزار javac, java, jar در jdk

در Java Development Kit یا Jdk سه ابزار وجود دارد که می تواند به طور پیوسته در کنار هم برای توسعه برنامه های جاواد استفاده می شوند:

  • جاوا کامپایلر: javac
  • لانچر برنامه های جاوا: java
  • ابزار آرشیو جاوا: jar

این مقاله قصد داره این سه ابزار کلیدی در توسعه جاوا را مرور کنه.

۱- Java Compiler و Java Application Launcher

وقتی که شما در حال استفاده از یک ویرایشگر یا Ide مثل Sublime یا NetBeans برای توسعه برنامه های جاوا هستید editor/IDE کامپایلر جاوا javac.exe رو برای کامپایل فایل های سورس (.java) اجرا می کند و java launcher یعنی java.exe را برای اجرای فایل های کامپایل شده .class فراخوانی می کند. تصویر زیر این فرآیند رو شرح می ده:

میتوان javac و java رو به عنوان دو موتور هواپیما تصور کرد. بدون موتورها هواپیما بلند نمی شه. با از دست دادن یکی از اونها احتمالا هواپیما نتونه پرواز کنه.

از دیدگاه فنی javac برنامه ای است که کد جاوا رو به bytecode (فایل .class) ترجمه می کنه. یک فرمت ومیانی که تویط jvm یا java virtual machine قابل فهم است.

و java برنامه ای است که jvm رو شروع می کنه که jvm هم به نوبه خودش فایل .class رو بارگزاری میکنه، bytecode رو verify میکنه و اون رو اجرا میکنه.

javac و java سنگ بنای زبان برنامه نویسی جاوا هستن. همه ویرایشگرها یا ide ها به این ابزار برای کامپایل و اجرای برنامه های جاوا تکیه می کنند.

چطوری باید شروع کنیم؟

خیلی ساده است. گام های کامپایل و اجرای سورس کد HelloWorld.java رو در زیر آوردیم:

  • Compile: javac HelloWorld.java

Run: java HelloWorld

البته پارامتر و گزینه های بیشتری هم وجود دارند که میتونید با javac -help یا java -help اون ها رو ببینید.

مستندات رسمی ابزار java و javac رو هم میبینید تو لینک های زیر ببینید.

نحوه نوشتن دستور java

نحوه نوشتن دستور javac

یقینا تسلط روی این ابزار نیازمند وقت و تلاش هست. شما نمی تونید در یک یا دو روز روی اونها مسلط بشید. 

در لینک های زیر مثال هایی آوردیم که بتونید سریع تر اطلاعات بیشتری در رابطه با این ابزار به دست بیارید.

مثال های دستور java

مثال های دستور javac

۲- ابزار آرشیو Java

در کنار javac و java یک مورد دیگر در JDK وجود دارد که یک ابزار مهم در برنامه نویسی جاوا است. آن Java Archive tool است از این رو نام jar برای فایل اجرایی آن است.
Jar یکی از ابزارهایی است که در فرآیند ساخت برنامه جاوا مشارکت می کند. طبق شکل زیر:


 

 

نوعا jar یکی از ابزاری است که در فرآیند بیلد کردن یک برنامه جاوا شرکت می کند. 

jar یک ابزار command-line مشابه Javac و java است. این ابزار برای قرار دادن گروهی از فایل های .class مرتبط در یک واحد تکی برای اسقرار و اجرای آسان است. نتیجه یک فایل ایجاد شده با پسوند .jar است. فایل .jar در واقع یک فایل ZIP اشت که که حاوی فایل های .class است.

لذا برنامه ها و کتابخانه های جاوا در فایل های .jar بسته بندی می شوند مثل unit.jar - log4.jar - MyProgram.jar و غیره.

می توان فکر کرد که فایل jar یک فایل اجرایی در برنامه جاوا است، مثل فایل های exe در ویندوز و فایل های sh در لینوکس. زمانی که روی فایل jar دوبار کلیک کنیم سیستم عامل تحریک میشه تا JVM را شروع کنه و JVM هم برنامه بیلد شده در فایل jar را بارگزاری و اجرا میکنه.

به عنوان یک برنامه نویس جاوا شما نیاز دارید تا ابزار Jar برای بسته بندی کد کامپایل شده خود (فایل های class) را بفهمید و قادر به استفاده از آنها باشید تا توسعه های کتابخانه ها و برنامه های جاوا در فایل های Jar را بسازید.

برای مثال، فرض کنید شما یک برنامه جاوا حاوی 3 فایل زیر را نوشته اید.

Painter.java, shape.java, Canvas.java

با استفاده از ابزار javac شما این فایل های .java را به فایل های .class کامپایل می کنید.

Painter.class, Shape.class, Canvas.class

سپس دستور زیر را تایپ کنید تا همه این فایل های class. را در یک فایل تکی به نام Painter.jar قرار دهید.

jar cf Painter.jar Painter.class Shape.class Canvas.class

خروجی یک فایل jar به نام Painter.jar است.

شکل زیر محتوای این فایل را توصیف می کند

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

java -jar Painter.jar

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

برای شرح کامل syntaxt مستند رسمی زیر از سایت اوراکل را چک کنید.

http://docs.oracle.com/javase/8/docs/technotes/tools/windows/jar.html

در طول سال ها من تجربیات خود را برای استفاده از این ابزار در مقاله زیر آورده ام. شما می توانید مثال های کاربردی و عملی را با استفاده از ابزار jar در این مقاله پیدا کنید.

Java jar command examples

چند نکته مهم در رابطه با ابزار java archive.

  • کتابخانه ها و برنامه های جاوا در فایل های jar بسته بندی میشوند.
  • یک فایل jar در واقع یک فایل ZIP است. یعنی شما می توانید از یک ابزار آرشیو مثل WinZip, WinRar, 7Zip استفاده کنید تا محتوای یک فایل jar را مشاهده کنید
  • ابزار jar که توسط JDK ارائه شده یک برنامه command-line است که به شما اجازه می دهد تا فایل های jar را ایجاد، نمایش و استخراج کنیم
  • شما می توانید از ابزار jar برای استخراج یک فایل zip یا فشرده سازی یک فایل به فرمت zip استفاده کنید

نتیجه گیری

زمانی که شما در حال کار بار یک ویرایشگر متن یا IDE هستید آنها همه تعاملات با javac, java, jar را انجام می دهند تا جزییات پیچیده را مخفی کنند و بهره وری را افزایش دهند.

این خوبه. شما می توانید برنامه های جاوا را بدون لمث این این ابزار بیلد کنید. هر چند طبق تجربه من پیشنهاد می کنم این ابزار را مطالعه و تمرین کنید چون مزایای زیر را دارد:

  • شما زیر و بم جاوا رو می فهمید که به شما تجربه حل مسائل مرتبط با کامپایل و اجرای برنامه های جاوا رو میده
  • شما به خودتون مهارت کار با یا بدون IDE ها را میدهید. برخی مواقع، کار مستقیم با javac, java, jar نسبت به استفاده از IDE ها زمان بیشتری برای شما صرفه جویی می کند و لذا بهره وری شما را افزایش می دهند
  • کنترل بیشتری روی برنامه نویسی جاوا دارید مثلا شما می توانید به سادگی با ابزار مختلف از جمله Ant, Maven, Gradle و غیره که تکیه به javac, java, jar دارند کار کنید.

دوست من، امروز می خوام به تو بگم: برای مستر شدن در برنامه نویسی جاوا شما باید روی core آن مستر شوید: java compiler, java luancher, java archive. اگر شما بخواهید یک هواپیما را خلبانی کنید شما باید بتوانید موتورهای آن را کنترل کنید.

منبع

اشتراک گذاری