جاوا در گنو/لینوکس(1397 مجموع کلمات موجود در متن) (8514 بار مطالعه شده است) جاوا
در گنو/لینوکس
زبان
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 javac
java: این
ابزار یک 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);
else
System.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
میباشد.
امید
است که مورد فایده واقع شود.
PDF Version
سعید
تقوی s.taghavi@ece.ut.ac.ir
[۱]
http://java.sun.com
منابع:
1) JDK 1.5_0_04 Documentation
2) javac , java , … manual pages
3)
gcj , gij , … manual pages |