Fixing Java GUI on Hardy Heron

เพิ่งลง Hardy Heron เมื่อคืนก่อน ปรากฎว่า NetBeans 6.0 รันไม่ได้

ปัญหาอยู่ที่ libmawt ของ JVM มันลิงก์กันไม่ได้กับ libxcb/libX11 ของ Hardy Heron แนว ๆ นี้ ดูจาก backtrace อ่ะนะ เราก็ไม่รู้ว่าจะแก้ยังไงหรอก

ไปเจอ workaround ที่ Ubuntu Forums ลองดูแล้ว ใช้ได้ เอามาแบ่งกัน

If you have problem with Java GUI apps (for example, NetBeans) on Hardy Heron (Ubuntu 8.04 LTS pre-release), try run this line in your terminal (as root) รันคำสั่งนี้ในเทอร์มินัล:

for 32-bit Ubuntu:
$ sudo sed -i 's/XINERAMA/FAKEEXTN/g' /usr/lib/jvm/java-6-sun-1.6.0.04/jre/lib/i386/xawt/libmawt.so

for 64-bit Ubuntu:
$ sudo sed -i 's/XINERAMA/FAKEEXTN/g' /usr/lib/jvm/java-6-sun-1.6.0.04/jre/lib/amd64/xawt/libmawt.so

(Notes: the path name may not be exactly as ones shown above, you may need to change to version number and/or the architecture of your JVM. Look your /usr/lib/jvm for the exact name to use. อย่าลืมเปลี่ยนชื่อพาธให้ตรงกับ JVM ที่อยู่ในเครื่องของเรา)

If that doesn’t work for you, try add this line into your .bash_profile file ถ้าไม่เวิร์กก็ลองเพิ่มบรรทัดนี้เข้าไปที่ .bash_profile:

export LIBXCB_ALLOW_SLOPPY_LOCK=true

ผมลองวิธีแล้วแล้วมันใช้ได้นะ NetBeans 6.0 + JVM 1.6.0.04 + Hardy Heron Alpha 4 — WORKSFORME

ตอนนี้กำลังลองเล่น Google Web Toolkit มีสำหรับ NetBeans ด้วยนะ (gwt4nb)

สวัสดีปีใหม่จีน

technorati tags:
,
,

Fix "uses unchecked or unsafe operations" for GATE’s FeatureMap

วันนี้นั่งไล่โค้ดตัวปลั๊กอิน GATE ทั้งวัน

กำลังเขียนปลั๊กอินเพื่อเอามาใช้กับโครงการที่กำลังทำอยู่ตอนนี้ที่ SIIT (เอ๊ะ ผมบอกรึยังนะ ว่าผมมาเป็นผู้ช่วยวิจัยอยู่นี่ ไว้ค่อยเล่าว่าทำอะไรละกัน ทีหลัง) ก็ใช้ GATE นี่แหละ

วันนี้พยายามแก้ warning ที่เจอมาตั้งแต่วันก่อน แต่ปล่อย ๆ ไปก่อน วันนี้ได้โอกาส ก็มาตามเก็บให้เรียบร้อย

โค้ดมันคล้าย ๆ นี้:


1: FeatureMap features = Factory.newFeatureMap();
2: features.put("key", object);

บรรทัดที่ 2 เนี่ย พอคอมไพล์ จะทำให้เกิด warning:


Note: MyJava.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

ไปเจอใน forum.java.sun.com เค้าบอกว่า มันเกิดเพราะ เราไม่ได้กำหนด parameter ให้กับตัว Map (เรื่อง generic)

ลองแก้ที่โค้ดตัวเอง ไม่สำเร็จ
ก็เลยต้องไปแก้โค้ดของ FeatureMap ของตัว GATE ซะ

ดังนี้:

ที่ไฟล์ gate/SimpleFeatureMap.java:

แก้
public interface SimpleFeatureMap extends Map
เป็น
public interface SimpleFeatureMap extends Map<Object, Object>

ที่ไฟล์ gate/util/SimpleMapImpl.java:

แก้
class SimpleMapImpl implements Map
เป็น
class SimpleMapImpl implements Map<Object, Object>

ลอง build GATE ดู ใช้ได้ build ผ่าน, ทดสอบรัน GATE โอเค

ลองคอมไพล์โปรแกรมตัวเอง (ที่เรียกใช้ FeatureMap) โอเค ไม่มี warning ละ เยี่ยม

ถ้าไม่มีซอร์สโค้ดแจกมา ให้ดู ให้แก้ คงทำงี้เองไม่ได้เนอะ ต้องรอเขาลูกเดียว ตั้งตา

เมลถาม(เอง)-ตอบ(เอง) เรื่องนี้เข้าเมลกลุ่ม ไปละ – -“

ไปประชุมเรื่อง YouMedia ก่อนนะ 😉

หมายเหตุ: นั่งเขียนที่ร้าน Cup B หยุดอยู่ที่ร้านนี้ เพราะหยุดดูข่าว iPhone ที่เค้าเปิดให้ดูหน้าร้าน (จอคอม) แล้วคนในร้านออกมาชวนคุย เราเลยนั่งทำงานอยู่ร้านนี้มันซะเลย หาที่นั่งทำงานเงียบ ๆ อยู่พอดี / Mac Cafe Mini @ Cup B

update: Ian Roberts หนึ่งในผู้ดูแล GATE ตอบรับแล้ว เดี๋ยวจะแก้โค้ดใน main GATE tree ให้ 🙂

technorati tags:
,