خیلی خب خودم راهش رو پیدا کردم
واسه اینکه یک خورده این تالار به درد بخور بشه این رو داشته باشین:
همونطور که میشد حدس زد، اشکال از classpath بوده و دقیقتر بگم چون دو تا کتابخانه در این برنامه استفاده شده، نیاز است که هم کتابخانه اصلی J2SE و هم کتابخانهی متعلق به org.eclipse.swt در classpath معرفی شوند. این قضیه به خوبی از خروجی برنامه جاوا در ترمینال قابل مشاهده است.
اما راهکار:
در واقع راه حل بسیار آسانی وجود دارد که برای توسعه گرانی که میخواهند برنامهشان را روی سیستم دیگری (مثلا یک سرور) اجرا کنند بسیار مفید است. در این راهکار کتابخانه/کتابخانههای اضافیای که در برنامه استفاده شدهاند به محل کتابخانههای اضافی jvm منتقل میشوند. به این ترتیب، صرفنظر از اینکه برنامه از کدام مسیر اجرا شود، جاوا همیشه میتواند از کتابخانههای اضافی موجود استفاده کند.
و بالاخره:
کتابخانهها میبایست در مسیر lib/ext در مسیر JRE کپی شوند. (نیازی به ویرایش هیچ فایل دیگری نیست.)
اگر هنوز نمیدانید JRE کجای سیستم سکونت گزیده است! میتوانید به کمک دو دستور زیر محیط اجرای جاوا را پیدا و رهگیری کنید:
which java
ls -l OUTPUT_OF_ABOVE_COMMAND
در خروجی دستور اولی احتمالا usr/bin/java/ را خواهید گرفت که در واقع یک لینک است. در دستور دوم مشخص میشود که این لینک به کجا متصل شده است. (معمولا چندین مرحله لینک تا رسیدن به محل اصلی JRE باید طی شود)
به عنوان مثال در اوبونتو خرگوش دندان دراز من، جاوا در مسیر
/usr/lib/jvm/java-6-sun-1.6.0.16/
وجود داشت.
راستی این هم منبع:
http://java.sun.com/j2ee/verified/packaging.html