Mobile Games 2004 JavaVietnam.org Trang 1 Giới thiệu về NetBeans – môi trường phát triển mã nguồn mở dành cho lập trình viên J2ME Bạn sẽ ngạc nhiên về những gì mà cộng đồng mã nguồn mở đem lại cho bạn. Nếu như Linux phải cần hơn 10 năm để có thể tiến gần đến mục tiêu là đối trọng của Windows cho dòng máy để bàn thì các ứng dụng IDE (Integrated Development Environment- môi trường phát triển tích hợp) chỉ mất một nữa thời gian để có thể là đối thủ tương xứng với các dòng sản phẩm thương mạ i danh tíếng như Borland Jbuilder, Code Warrior, Oracle JDeveloper . Một trong những nguyên nhân chính giúp các sản phẩm mã nguồn mở trong dòng sản phẩm này phát triển như vũ bão như hiện nay là sự hỗ trợ từ các đại gia trong giới công nghệ, ví dụ như trong sản phẩm NetBeans là sự xuất hiện của Sun Microsystems và trong sản phẩm Eclipse là “ông trùm” IBM. Một giao diện chuyên nghiệp đến không ngờ đó là ấn tượng đầu tiên của tôi khi download NetBeans từ trên mạng, lúc đó vẫn còn là bả n 3.5.1, còn đến bản 3.6 hiện nay thì tôi đã hoàn toàn bị thuyết phục về sản phẩm này và quyết định chuyển toàn bộ dự án Java của tôi sang sử dụng NetBeans. NetBeans có một lợi thế mà các sản phẩm thương mại khác không thể có, đó là chi phí bản quyền. Nếu bạn đã có dịp sử dụng qua NetBeans thì bạn không thể ngờ đây là 1 sản phẩm mã nguồn mở và bạn có thể sử dụng hoàn toàn miễn phí. Trong bối cảnh Việt Nam phải thực thi luật bản quyền khi gia nhập WTO thì các dòng sản phẩm mã nguồn mở này chính là một cứu cánh lớn cho giới lập trình viên Việt Nam. Các doanh nghiệp phần mềm không có lý do gì để phải trả trên 1000 USD cho các IDE quen thuộc mà lại không làm quen với các IDE Open Source. Trong phạm vi bài viết này, tác giả mong muốn người đọc có thể làm quen với việc sử dụng môi trường phát triển NetBeans, trước mắt là trong cuộc thi Mobile Games 2004 và sau đó là trong công việc của mình. 1. Download NetBeans IDE : Bạn có thể tải về từ Internet, hãy vào địa chỉ sau: http://www.netbeans.org/downloads/ide/index.html và làm theo hướng dẫn trên trang web, bản đầy đủ khoảng 36 Mb 2. Các khái niệm cơ bản cần nắm trước khi sử dụng NetBeans : 1. Xác định Mount FileSystem: Nếu bạn đã có kinh nghiệm lập trình Java thì khái niệm Mount khá giống với việc xác định Classpath khi biên dịch và chạy ứng dụng Java bằng dòng lệnh. NetBeans đã đưa ra một khái niệm mới là FileSystem. Với việc xác định FileSystem và “mount” chúng với mã nguồn, NetBeans sẽ biên dịch (compile) mã nguồn và copy các file .class vào cấu trúc thư mục như trong khai báo package. Ngoài ra, nếu mã nguồn của bạn có sử dụng các thư viện lập trình khác thì việc khai báo trong FileSystem sẽ báo cho trình biên dị ch biết nơi cần tìm các thư viện cần thiết. Việc xác định đúng FileSystem sẽ tránh được lỗi FileNotFoundException, đây là một lỗi rất cơ bản đối với người mới bắt đầu lập trình Java. 2. Cài đặt J2ME Plug-in: Để đáp ứng trước sự phát triển như vũ bão của CNTT như hiện nay thì mọi môi trường phần mềm phải là mở tức là cho phép các hãng phần mềm khác viế t các phần bổ sung (thuật ngữ tiếng Anh gọi là Plugin) và tích hợp được với phần mềm. NetBeans là một môi trường như vậy. Bạn có thể chọn lựa các Plugins cho nhu cầu của mình, NetBeans cung cấp hơn 50 Plugin miễn phí, J2ME Plugin là một trong số đó. Có hai cách để cài đặt J2ME plugin vào máy của các bạn. Hoặc các bạn sử dụng tính năng update của Netbeans hoặc các bạn download các Plugins này về và cài đặt. Do điều kiện Internet ở VN nên tôi chọn cách thứ hai. • Download các Plug-in hỗ trợ việc lập trình J2ME: Tham khảo phần phụ lục, tôi giả sử các bạn lưu các Plugins ở thư mục D:\Soft Mobile Games 2004 JavaVietnam.org Trang 2 • Cài đặt: Cách cài đặt các Plugins tương tự nhau và rất dễ dàng. Tôi chỉ nêu ra một ví dụ khi cài đặt J2ME Wireless Toolkit. Các bạn vào menu Tools-> Update Center. Do chọn cách cài đặt offline nên các bạn chọn Install Manually Downloaded Modules (.nbm Files) và bấm Next. Cửa sổ như hình dưới sẽ xuất hiện. Các bạn chọn nút Add và chọn đường dẫn tới thư mục lưu trữ các Plugin, trong trường hợp này là D:\Soft\kjava-emulator_win.nbm sau đó chọn Next Và sau đó là thực hiện các bước đăng ký xác nhận quyền sở hữu Plugin v.v, thao tác r ất đơn giản nên tôi không hướng dẫn chi tiết. The image cannot be displayed. Your computer may not have enough memory to open the image, or the image may have been corrupted. Restart your computer, and then open the file again. If the re d x still appears, y ou may hav e to delete the image and then insert it again. The image cannot be displayed. Your computer may not have enough memory to open the image, or the image may have been corrupted. Restart your computer, and then open the file again. If the red x still appears, you m ay have to delete the ima ge and then insert it a gain. Mobile Games 2004 JavaVietnam.org Trang 3 3. Xác định Emulator: Trong lập trình trên J2ME thì việc xác định thiết bị mô phỏng trước khi chạy trên thiết bị thật rất quan trọng, do đó, điều mà các lập trình viên J2ME cần phải chú ý thứ ba là việc tích hợp các bộ giả lập (Emulator) vào NetBeans. Mời các bạn tham khảo lại hai bài viết “ Hướng dẫn sử dụng Samsung JSDK 1.0 ” và “ Phát triển ứng dụng J2ME với Samsung JaUmi Wireless Toolkit 2.0 ” trong PC World số tháng 6 về cách cài đặt bộ SDK và Emulator của Samsung. Các bạn chọn Tool -> Device Emulator Registry, một cửa sổ hiện ra như hình dưới Bạn nhấn vào nút Add và chọn đường dẫn vào thư mục bạn cài đặt Samsung Wireless Toolkit, trên máy tôi là C:\SAMSUNG_WTK20 NetBeans có chức năng tìm Emulator từ thư mục đã chọn. Nếu bạn thấy dòng thông báo “Detected Emulator Type” như hình trên thì bạn đã chọn đúng và bạn nhấn Next, sau đó NetBeans sẽ liệt kê các Emulator của các chủng loại điện thoại mà The image cannot be displayed. Your computer may not have enough memory to open the image, or the image may have been corrupted. Restart your computer, and then open the file again. If the red x still appears, you m ay have to delete the ima ge and then insert it again. The image cannot be displayed. Your computer may not have enough memory to open the image, or the image may have been corrupted. Restart your computer, and then open the file again. If the red x still appears, you m ay have to delete the ima ge and then insert it again. Mobile Games 2004 JavaVietnam.org Trang 4 SDK hỗ trợ. Tốt nhất là bạn chọn all và nhấn Finish. Sau đó bạn hãy chọn dòng điện thoại Samsung mà bạn muốn chạy thử từ hình trực quan sau Sau khi đọc xong phần này, các bạn đã biết cách tích hợp các Emulator vào NetBeans và xem thử kết quả chương trình trực tiếp từ NetBeans. 3. Chạy thử các ứng dụng J2ME sử dụng API của Samsung : Một thành viên của JavaVietnam.org là bạn Nguyễn Ngọc Minh (acc minhnn) đã viết những ví dụ sử dụng API của Samsung SDK. Tôi sẽ sử dụng những ví dụ này trong bài viết. Các bạn có thể tải source code minh họa từ địa chỉ sau http://www.JavaVietnam.org/javavn/tutorial/j2me/SamsungDemo.zip. • Thiết lập FileSystem trong NetBeans: Giả sử tôi để mã nguồn và các file có liên quan tại tại thư mục C:\SamsungDemo. Với cấu trúc thư mục như hình sau: Với thư mục src chứa toàn bộ mã nguồn và thư mục res chứa các file tài nguyên cho ví dụ như hình ảnh, âm thanh v.v Bạn vào menu File-> Mount FileSystem . sau đó chọn Local Directory và nhấn Next và sau đó các bạn chọn đường dẫn thư mục tới c:\SamsungDemo\src và nhấn Finish. Các bạn hãy kiểm tra lại trên màn hình của các bạn với hình chụp dướ i đây The image cannot be displayed. Your computer may not have enough memory to open the image, or the image may have been corrupted. Restart your computer, and then open the file again. If the red x still appears, you may hav e to delete the image and then insert it again. The image cannot be displayed. Your computer may not have enough memory to open the image, or the image may have been corrupted. Restart your computer, and then open the file again. If the red x still appears, you may hav e to delete the image and then insert it again. Mobile Games 2004 JavaVietnam.org Trang 5 Sau đó bạn hãy kiểm tra toàn bộ công việc của mình bằng cách nhấn tổ hợp phím Shift-F11, đây là phím tắt ra lệnh cho NetBeans biên dịch (compile) và xây dựng (build) toàn bộ project, nếu trên tab Compiler không báo lỗi gì thì xin chúc mừng bạn, bạn đã cấu hình NetBeans để xây dựng ứng dụng J2ME thành công • Chạy thử các tính năng của điện thọai Samsung: Trong phần demo của bài viết có đề cập đến các chức năng mà MIDP 1.0 không cung cấp như đọc file âm thanh, rung (vibration), hiển thị đèn LCD, gửi SMS. Để kiểm tra các tính năng này trên bộ giả lập Samsung, bạn làm như sau: • Chọn chương trình giả lập Samsung: Tôi chọn SGH-E100 • Bấm chuột phải vào lớp SamsungDemoMidlet và chọn menu Execute (hoặc nhấn F6), nếu mọi chuyện suôn sẻ thì cửa sổ chương trình giả lập sẽ hiện ra. Cuối cùng thì chương trình J2ME đầu tiên cũng đã chạy The image cannot be displayed. Your computer may not have enough memory to open the image, or the image may have been corrupted. Restart your computer, and then open the file again. If the red x still appears, you may hav e to delete the image and then insert it again. Mobile Games 2004 JavaVietnam.org Trang 6 Do phạm vi bài viết có hạn nên tôi không đề cập sâu vào phần mã nguồn, phần chi tiết này sẽ được hướng dẫn trong một bài khác. 4. Kết luận : Trong phạm vi bài viết này, tác giả đã giới thiệu về môi trường lập trình NetBeans, phiên bản 3.6 cho phép các lập trình viên phát triển các ứng dụng J2ME một cách nhanh chóng nhất. Nếu độc giả đã có kinh nghiệm sử dụng các công cụ như Jbuilder thì chắc hẳn rằng các bạn sẽ không mất nhiều thời gian để làm quen với NetBeans và công cụ lập trình J2ME của nó. Bài viết không đề cập đến cách sử dụng các API do Samsung SDK, phần này sẽ được bàn đến chi tiết trong một bài viết khác. Bài viết cũng không đề cập đến quá trình gỡ lỗi (debug) và chạy từng bước, xem như là bài tập dành cho độc giả. Khi độc giả đọc bài viết này thì phiên bản NetBeans 4.0 với rất nhiều những cải tiến đã ra mắt. Hi vọng sẽ được tiếp tục bàn luận với người đọc về phiên bản mới này. Phụ lục Bảng 1: Các Plugins của NetBeans hổ trợ J2ME Tên gói Nội dung và công dụng Địa chỉ tải về kjava-emulator_win.nbm Gói này chứa các thư viện của bộ J2ME Wireless Toolkit 1.0.4. Hổ trợ MIDP 1.0 http://www.netbeans.org/downl oad/nbms/36/stable/J2ME_Wire less/Windows/kjava- emulator_win.nbm The image cannot be displayed. Your computer may not have enough memory to open the image, or the image may have been corrupted. Restart your computer, and then open the file again. If the red x still appears, you may have to delete the image and then insert it again. Mobile Games 2004 JavaVietnam.org Trang 7 Bảng 1: Các Plugins của NetBeans hổ trợ J2ME kjava.nbm Gói này chứa các MIDP wizard (công cụ cho phép tạo code tự động) và MIDP templates. Gói này cũng bao gồm bộ giả lập (Emulator) cho phép test trước khi chạy trên thiết bị thật http://www.netbeans.org/downl oad/nbms/36/stable/J2ME_Wire less/kjava.nbm Bảng 2: Các lỗi thường gặp khi biên dịch code J2ME bằng NetBeans Thông báo lỗi Nguyên nhân và cách giải quyết NoClassDefFoundError Bạn đã chọn sai đường dẫn trong FileSystem, hãy chắc chắn rằng bạn có đường dẫn c:\SamsungDemo\src java.lang.InstantiationExceptio n: Class not a MIDlet Bạn đã chọn sai class cần để chạy. Trong phần Source code mà chúng tôi cung cấp thì chỉ có lớp SamsungDemoMidlet là Main Class để có thể chạy trực tiếp. NGUYỄN HỮU MAI (mainh - www.JavaVietnam.org) . sử dụng NetBeans. NetBeans có một lợi thế mà các sản phẩm thương mại khác không thể có, đó là chi phí bản quyền. Nếu bạn đã có dịp sử dụng qua NetBeans. môi trường phát triển NetBeans, trước mắt là trong cuộc thi Mobile Games 2004 và sau đó là trong công việc của mình. 1. Download NetBeans IDE : Bạn có