جاوا در گنو/لینوکسزبان Java یکی از قدرتمندترین و کارامدترین زبانهای بـرنامه سازی است که توسط شرکت SUN Microsystems طراحی شده است. این زبان که یک زبان کاملا شی گراست دارای قابلیتهای بسیار زیادی در زمینههای مختلف میباشد.
Java و تکنولوژیهای وابسته به آن در زمینههایی چون برنامههای کاربردی، وب، شبکه، امنیت، پایگاه داده، پردازش موازی، طراحی و پردازش چند رسانه ای و غیره کاربرد بسیار دارند.
سوالی کـــه ممکن است برای هر توسعه دهنده نرم افزارهای Java کـه به تازگی با دنیای سیستم عامل لینوکس آشنا شده است مطرح شود، این است که در لینوکس چگونه میتوان از Java استفاده نمود؟ مــا در این مقاله به بررسی این موضوع خواهیم پرداخت.
برای این منظور دو راه در لینوکس وجود دارد که نسبت به بقیه موارد متعارفتر است:۱) استفاده از بسته JDK شرکت SUN۲) استفاده از کامپایلر و دیگر ابزار های مربوط به Java در مجموعه GCC
بسته JDKهمان طور که می دانید یکی از Platform های متعددی کــه Java پشتیبانی میکند، لینــوکس است . یعنی به سادگی میتوانید بــا مــراجعه به سایت جاوا [۱] و یا یکی از mirror های آن و دریــافت بستـــه JDK و نصب آن، از ایـــن بســـته استفاده کنید. بــرای این کار فایل با پسوند bin را download کـرده و به صورت زیر اجرا کنید تا JDK بر روی سیستم شما نصب شود.
# ./jdk-1_5_0_04-linux-i586.binپس از اجرای این دستور فایلها از حـالت فشرده خارج شده و در دایرکتوری جاری شما قرار خواهند گرفت. با استفاده از دستور export برای تنظیم متغیر های PATH و CLASSPATH میتوانید از این بسته استفاده کنید.
$ export PATH=/home/<user>/jdk1.5.0_04/bin:$PATH$ export CLASSPATH=/home/<user>/jdk1.5.0_04/lib:<other paths to class libraries>بـــرای اطلاعات کامــلتر در مورد نصب و پیــکربندی JDK به فایلـهــای install.html و system-configurations.html در وب سایت جاوا مراجعه کنید.
نحوه استفاده از ابزارهای JDKبسته JDK دارای ابزارهای مختلفی میباشد. در اینجا به چند نمونه از مهم ترین این ابزارها خواهیم پرداخت.javac : این ابزار کامپایلر Java میباشد که کدهای منبع Java را به bytecode تبدیل میکند. صورت کلی این دستور به صورت زیر می باشد:
$ javac [options] [sourcefiles.java]معمــولا option هــای زیــادی با javac به کار نمیرود. شــاید مهم ترین آنها g- و classpath- باشند. بــرای آگــاهــی از لیست کامل این گزینه ها دستور زیر را اجرا کنید:
$ man javacjava: این ابزار یک Java Application را اجرا می کند. صورت کلی این دستور به دو صورت زیر می باشد:$ java [options] class [arguments]$ java [options] –jar file.jar [arguments]Options ورودی هایی هستند که میتوانند نحوه اجرا را تغییر دهند. مانند javac معمـــولا option های زیــادی با java به کار نمیرود. برای اطلاع از لیست کامل این option ها دستور man java را اجرا کنید.
Class نام کلاسی است که به عنوان main صدا زده خواهد شد. file.jar نام jar فایلی است که مورد اجرا قرار میگیرد و در نهایت arguments ورودیهایی هستند که به تابع اصلی برنامه پاس خواهند شد.
jar: این ابزار چندین فایــل را بــه صــورت یــک فــایــل jar ترکیب میکنـــد. این ابزار می تواند jar فایل را به روز کند، آن را Extract کند، محتوای آن را لیست کند و یا به آن یک index اضافه کــنــد. ایــن دستـور دارای صورتهای بسیار زیادی میباشد. برای استفاده مناسب از این ابزار به manual page آن مراجعه کنید.
jdb: برنامه اشکال زدایی کدهای Java – صورت کلی این دستور به صورت زیر می باشد:$ jdb [options] class [arguments]یک مثال: فرض کنید که دو فایل Hello.java و MyString.java داریم و کدهای زیر را به صورت زیر در ان وارد کردهایم ./* Hello.java */public class Hello {public static void main(String args[]) {MyString str = new MyString();str.add(“Hello”);str.add(“World”);str.print();}}/* MyString.java */public class MyString {private String string = “”;public void add(String newword) {if (string.length() > 0)string += “ ”;string += newword;}public void print() {if (string.length() > 0)System.out.println(string);elseSystem.out.println(“The string is empty”);}}به سادگی با دو دستور زیر میتوانید این برنامه کامپایل و اجرا نمایید:$ javac Hello.java$ java Hello
نحوه استفاده از ابزارهای GCCیکی از زبانهای مــورد پشتیبانی در مجــمــوعه بـسیــار مـعروف GCC کامپایلر زبان Java می باشد . این مجموعه دارای ابزارهای زیادی در ارتباط با Java میباشد. مــهـم ترین ابزارهای آن که ما در این مقاله به آنها خواهیم پرداختjar ،gij gcj میباشند.
ابزارهای مجموعه GCC کاملا با استاندارد Java مطابقـت دارند بدین معنی که اگر شما کد Java ای را با استفاده از GCC کامپایل کنید بدون هیچ گونه ایرادی با استفاده از ابزارهای JDK قابل اجرا می باشد و بالعکس.
gcj: کامپایلر کدهای Java در مجموعه GCC ( معادل javac در JDK )gij: مترجم Java bytecode در مجموعه GCC ( معادل java در JDK )jar: ابزاری برای Java Archives ( معادل jar در JDK )مــزیتی کــه ابـزارهای GCC بر ابزارهای JDK دارند این است که میتوانند عملیات بسیار بیشتری را بر روی کدهای Java انجام دهند. برخی از این عملیات عبارتند از: ایــجــاد کد اسمبلی – ایجــاد کتابخانه ( static و shared ) و از همه مهمتر تولید برنامه قابل اجرا. در زیر به این موارد خواهیم پرداخت:
عملیاتی بر روی یک فایلفرض کنید که کد Java زیر را داشته باشیم:/* MyHello.java */public class MyHello {public static void main(String args[]){System.out.println(“Hello World”);}}برای تبدیل این کد به یک کد اجرایی دستور زیر را وارد کنید.$ gcj --main=MyHello --Wall MyHello.java -o MyHelloبایستی با استفاده از main-- کلاس اصلی را مشخص کنید و برای اجرای ان به صورت زیر عمل کنید:$ ./MyHelloبرای تبدیل همین کد به bytecode دستور زیر را به کار ببرید.$ gcj --C --Wall MyHello.javaو برای اجرای ان به دو صورت زیر می توانید عمل کنید.$ gij MyHello$ java MyHello
برای تبدیل این کد Java به object file دستور زیر را به کار ببرید.$ gcj -c MyHello.javaو برای تبدیل object file ها به فایل اجرایی دستور زیر را به کار ببرید:$ gcj --main=MyHello MyHello.o -o MyHelloو برای تبدیل فایل bytecode به فایل اجرایی دستور زیر را به کار ببرید:$ gcj MyHello.class -o MyHelloو در نهایت برای تولید کد اسمبلی دستور زیر را به کار ببرید:$ gcj -S MyHello.javaعملیاتی بر روی چند فایلمثال بخش مربوط به JDK که شامل دو فایل بود را در نظر بگیرید . برای تبدیل ان مثال به برنامه قابل اجرا دستور زیر را به کار ببرید.$ gcj --main=Hello Hello.java MyString.java -o Hello$ ./Helloمی توانید هر کدام از دو فایل Java را به object file تبدیل کرده و با یکدیگر لینک کنید به صورت زیر:$ gcj -c Hello.java$ gcj -c MyString.jaav$ gcj --main=Hello Hello.o MyString.o -o Hello$ ./Helloهمچنین می توانید هر کدام از دو فایل java را به bytecode تبدیل کرده و پس از ان با یکدیگر لینک کنید. به صورت زیر :$ gcj -C Hello.java MyString.java$ gcj --main=Hello Hello.class MyString.class -o Hello$ ./Helloیا اینکه می توانید مستقیما bytecode را به وسیله java یا gij اجرا کنید:$ java Hello or $ gij Hello
ایجاد static libraryبرای این کار ابتدا باید فایلهای java را به object file تبدیل کنید و سپس با استفاده از دستور ar این کار انجام می پذیرد.
$ ar -rc libMyString.a MyString.o …… ( other object files )
ایجاد shared objectبــرای تولید shared object ابتدا باید فایلهای java را بــه شــکــلی متفـاوت نسبت به قبل کامپایل کنید. به صورت زیر با
استفاده از ورودی –fpic
$ gcj -fpic -c MyString.javaو به صورت زیر shared object ساخته خواهد شد.$ gcj -shared MyString.o …… ( other object files ) -o libMyString.so
ایجاد jar فایلابتدا بایستی فایلهای java را به byetcode تبدیل کنید:$ gcj -C MyString.javaو سپس با استفاده از دستور زیر jar فایل ساخته خواهد شد:$ jar cf libMyString.jar MyString.class …… ( other class files )
نتیجه گیریدر این مقاله به بررسی اجمالــی دو بستــه JDK و GCC-Java کــه بـــرای تــوســعــه Java Applications بـه کار میروند پرداختیم. مــوارد ذکر شده در ایـن مقاله تنها بخش کوچکی از امکانات و ابزارهای موجود در سیستم عامل لینوکس برای توسعه کد های Java میباشد. امید است که مورد فایده واقع شود.




نمي كنيد
پاسخ با نقل قول
