Làm chủ Eclipse V3.4, Phần 2: JDT Hiểu các đặc tính thường dùng trong các công cụ phát triển Java Prashant Deva Sáng lập viên Placid Systems 06 06 2009 Loạt các bài viết "Làm chủ Eclipse" (Mastering Eclipse) này dạy tất cả nhưng người mới đến với Eclipse những đặc tính và sự phức tạp về IDE của Eclipse. Học xong loạt bài này, bạn sẽ có kiến thức ngang hàng với những người sử dụng cao cấp. Trong bài viết này, bạn sẽ tìm hiểu về cách làm việc với các phần khác nhau của JDT Eclipse. Xem thêm bài trong loạt bài này Bài viết này nói về Công cụ Phát triển Java™ (Java Development Tools-JDT), minh họa một số các đặc tính thường hay sử dụng và giải thích làm thế nào để tùy chỉnh chúng. Nó cũng thảo luận về các khái niệm và các đặc tính có thể khác nhau trong môi trường phát triển tích hợp (IDE) Eclipse so với những môi trường khác hoặc các đặc tính có thể không rõ ràng đối với những người sử dụng mới đến với JDT. Xem Phần 1 nếu bạn vừa mới bắt đầu với Eclipse V3.4. Vậy JDT là gì? Eclipse đã trở nên đồng nghĩa với phát triển bằng Java. Tuy nhiên, đối với nhiều người mới đến với Eclipse, các mối quan hệ giữa công nghệ Eclipse và Java có thể không hoàn toàn rõ ràng. Eclipse là một nền tảng cơ bản nhất đã được viết bằng ngôn ngữ lập trình Java. Các trình cắm thêm (Plug-in), chẳng hạn như Mylar và Findbugs, được viết ở bên trên của IDE này cung cấp các chức năng của nó và ngôn ngữ Java cho phép Eclipse thực hiện chức năng giống như một IDE Java. Có lẽ là do JDT theo mặc định được bao gồm trong các bản Eclipse tải về, không hẳn rõ ràng ngay lập tức, khi các nhà phát triển nói rằng họ sử dụng Eclipse để phát triển Java, những gì mà họ thực sự muốn nói là họ sử dụng JDT. © Copyright IBM Corporation 2009 Làm chủ Eclipse V3.4, Phần 2: JDT Nhẫn hiệu đăng ký Trang 1 của 12 developerWorks® ibm.com/developerWorks/vn/ Giải phẫu một dự án Java Hình 1. Một dự án Java điển hình khi được nhìn từ Package Explorer Khung nhìn Package Explorer Mặc dù Eclipse chứa một vài khung nhìn trong đó để duyệt các tệp tin, chẳng hạn như khung nhìn Navigator (trình dẫn hướng) và khung nhìn Package Explorer (trình thám hiểm các gói), bạn sử dụng khung nhìn Package Explorer để dẫn hướng trong các dự án Java. Khung nhìn này hiển thị thư mục src cho mỗi dự án Java và cho phép bạn dẫn hướng trong các gói ở mỗi thư mục src. Bạn có thể mở rộng các tệp tin Java riêng lẻ để xem các phác thảo của chúng. Bạn cũng có thể mở rộng mục Referenced Libraries của từng dự án để xem các thư viện cho đường dẫn xây dựng của dự án. Một dự án Java bao gồm các phần tử sau đây: Thư mục src Thư mục này chứa mã nguồn thực tại của ứng dụng của bạn. Theo mặc định, khi bạn tạo một dự án Java mới, Eclipse tạo ra một thư mục src trong đó để giữ tất cả các mã nguồn của bạn, nhưng bạn có thể thêm bất cứ thư mục nào như là thư mục nguồn của bạn. Ví dụ, nhiều người muốn có một thư mục các thử nghiệm (tests) trong đó họ tạo ra tất cả các tình huống thử nghiệm của họ. Để thêm một thư mục tests vào dự án của bạn: 1. Nhấn chuột phải vào dự án, sau đó nhấn vào New > Folder. 2. Gõ tên cho thư mục (trong trường hợp này là tests) và nhấn OK. 3. Nhấn chuột phải vào thư mục tests, sau đó nhấn vào Build Path > Use as Source Folder. Thư mục kết quả (output folder) Thư mục này chứa các tệp .class đã tạo ra từ mã nguồn của bạn. Theo mặc định, Eclipse tạo ra một thư mục bin để giữ các tệp tin này. Làm chủ Eclipse V3.4, Phần 2: JDT Trang 2 của 12 ibm.com/developerWorks/vn/ developerWorks® Các thư viện được tham chiếu (Referenced Libraries) Đây là các thư viện hoặc các dự án Java khác trong vùng làm việc (workspace) mà dự án hiện tại của bạn phụ thuộc vào chúng. Chúng được thêm vào đường dẫn xây dựng (build path) và CLASSPATH khi Eclipse đang xây dựng hoặc chạy dự án Java của bạn. Thiết lập đường dẫn xây dựng Nhiều khi, các dự án Java sử dụng các lớp nằm trong một số kho lưu trữ Java khác (JAR) trên máy tính của bạn hoặc trong một số dự án khác trong cùng một vùng làm việc. Để sử dụng các lớp này, bạn cần phải thêm vào các dự án/các JAR tương ứng vào đường dẫn xây dựng của dự án hiện tại của bạn. Nếu không, Eclipse hiển thị lỗi biên dịch trong dự án của bạn. Để sửa đổi một đường dẫn xây dựng của dự án: 1. Nhấn chuột phải vào dự án trong Package Explorer và nhấn vào Settings. 2. Trong cửa sổ kết quả, chọn Java Build Path. 3. Để thêm các dự án trong cùng vùng làm việc vào đường dẫn xây dựng của bạn, hãy nhấn vào thẻ Projects, sau đó nhấn vào Add. 4. Chọn các dự án mà bạn muốn có trên đường dẫn xây dựng, sau đó nhấn OK. Để thêm các JAR vào dự án của bạn: 1. Nhấn vào thẻ Libraries. Hình 2. Sửa đổi đường dẫn xây dựng 2. Nhấn vào Add external JARs, sau đó chọn các JAR bạn muốn thêm vào. Tùy chỉnh các thông số cài đặt trình biên dịch Eclipse cho phép bạn tuỳ chỉnh các thông số cài đặt của trình biên dịch Java gắn liền của nó. Eclipse sử dụng trình biên dịch này để xây dựng dự án của bạn. Để tùy chỉnh các thông số cài đặt trình biên dịch cho dự án của bạn: Làm chủ Eclipse V3.4, Phần 2: JDT Trang 3 của 12 developerWorks® ibm.com/developerWorks/vn/ 1. Nhấn chuột phải vào dự án trong Package Explorer và nhấn vào Settings. 2. Trong cửa sổ kết quả, chọn Java Compiler. Hình 3. Tùy chỉnh các thông số cài đặt trình biên dịch Java 3. Trên trang này và phần còn lại của các trang tùy chọn ưu tiên cho trình biên dịch Java: • Chọn Enable project specific settings để các thay đổi mà bạn thực hiện với các thông số cài đặt trình biên dịch chỉ áp dụng cho dự án này mà thôi. • Nhấn vào liên kết Configure Workspace Settings để làm cho các thay đổi của bạn áp dụng cho tất cả các dự án trong vùng làm việc. 4. Từ trình đơn Compiler compliance level, chọn phiên bản của Java mà bạn muốn dùng để biên dịch mã nguồn của bạn. Ví dụ, nếu bạn đang sử dụng các đặc tính Java V1.5, bạn nên chọn tuỳ chọn đó. 5. Mở rộng cây của trình biên dịch Java (Java Compiler) và sau đó chọn Errors/Warnings. Tại đây, bạn có thể thiết lập Eclipse để báo hiệu các lỗi tiềm năng trong mã của bạn. Nếu bạn tìm thấy một mục quá chặt chẽ, bạn có thể báo cho Eclipse bỏ qua nó (ví dụ, khối rỗng không có tư liệu -Undocumented Empty Block) hoặc bạn có thể thiết lập các mục để báo hiệu một cảnh báo hoặc lỗi tùy theo bạn nghĩ vấn đề nghiêm trọng đến mức nào. Làm chủ Eclipse V3.4, Phần 2: JDT Trang 4 của 12 ibm.com/developerWorks/vn/ developerWorks® Hình 4. Tùy biến các lỗi và các cảnh báo của trình biên dịch Java ý: Theo khuyến cáo, bạn nên thiết lập các mục Potential programming Problems và Deprecated and Restricted API ít nhất cho mức Warning. Bạn có thể muốn bỏ qua mục Serializable class without serialVersionUID trong Potential programming Problems trừ khi bạn có kế hoạch để đồng bộ hóa nhiều đối tượng của bạn. 6. Chọn Task Tags trong cây Java Compiler. Các thẻ tác vụ cho phép bạn để lại các ghi chú cho mình hoặc cho các nhà phát triển khác nhận xét về mã. Ví dụ, bạn có thể viết một dòng như sau: //TODO this is a bug. details at http://bugs.mycompany.com/3434/ Bạn có thể thấy chính các ghi chú này trong khung nhìn Tasks. Nhấn chuột vào bất kỳ ghi chú nào trong khung nhìn để nhảy tới nó trong tệp mã nguồn. Theo mặc định, Eclipse cung cấp ba loại thẻ tác vụ: FIXME, TODO, và XXX. Bạn có thể thêm các thẻ của riêng bạn, chẳng hạn như BUG, chỉ đơn giản bằng cách chọn Task Tags trong cây Java Compiler (xem Hình 5), nhấn chuột vào New và gõ tên của thẻ vào trong cửa sổ xuất hiện. Bạn thậm chí có thể thiết lập một mức ưu tiên cho thẻ, sẽ rất có ích vì bạn có thể sắp xếp các ghi chú theo mức ưu tiên trong khung nhìn Tasks. Lưu Làm chủ Eclipse V3.4, Phần 2: JDT Trang 5 của 12 developerWorks® ibm.com/developerWorks/vn/ Hình 5. Tùy chỉnh các thẻ tác vụ Cấu trúc lại Cấu trúc lại (Refactoring) cho phép bạn dễ dàng thực hiện các thay đổi mã của bạn ở một chỗ và các thay đổi đó sẽ hiển thị ở cả các nơi khác mà mã xuất hiện. Nếu điều này có vẻ khó hiểu, hãy nhớ chắc như sau: Mục này sẽ xem xét xem phần có lẽ là thú vị nhất của Eclipse. Bởi vì Eclipse chứa nhiều khả năng cấu trúc lại và việc mô tả tất cả chúng sẽ cần đến một bài viết riêng, bài viết này tập trung vào một số vấn đề được sử dụng thường xuyên nhất. Cấu trúc lại bằng đổi tên Cấu trúc lại bằng đổi tên (Rename refactoring) có lẽ là biện pháp thường được sử dụng nhất khi cấu trúc lại. Bạn có thể sử dụng nó để đổi tên bất cứ phương thức, biến, hoặc lớp nào trong dự án của bạn. Để thử nó: 1. Chọn bất kỳ biến nào trong trình soạn thảo. 2. Nhấn vào Refactor > Rename từ trình đơn ở phía trên cùng của GUI Eclipse, (được hiển thị trong Hình 6). Trình soạn thảo Java đặt các hộp xung quanh tên biến và tất cả những chỗ mà biến được sử dụng. Làm chủ Eclipse V3.4, Phần 2: JDT Trang 6 của 12 ibm.com/developerWorks/vn/ developerWorks® Hình 6. Trình đơn Cấu trúc lại cung cấp nhiều khả năng cấu trúc lại 3. Gõ tên mới cho biến và sau đó ấn phím Enter. Ở mọi chỗ mà biến được sử dụng sẽ tự động được thay đổi thành tên mới. Tương tự, bạn có thể thay đổi các tên của các lớp và các phương thức. Ở mọi chỗ mà chúng đang được sử dụng sẽ được thay đổi thành các tên mới. Bằng cách này, bạn không phải tìm thủ công mọi thể hiện ở đó phương thức được gọi và tự sửa nó, điều này tiết kiệm cho bạn rất nhiều thời gian và ngăn ngừa các lỗi tiềm năng. Bạn có thể dễ dàng thay đổi tên của bất cứ phương thức, các biến và các lớp nào trong các dự án Java của bạn mà không sợ làm cho nó có một ý nghĩ thứ hai. Cấu trúc lại bằng di chuyển Kiểu cấu trúc lại này đặc biệt có ích trong việc di chuyển các lớp từ một gói này đến gói khác. Rất có thể bạn sẽ sử dụng nó khá thường xuyên — chỉ đứng sau khả năng cấu trúc lại bằng đổi tên. Để thực hiện nó: 1. Nhấn chuột phải vào bất kỳ lớp nào trong Package Explorer và sau đó nhấn vào Refactor > Move. Một cửa sổ mở ra, hiển thị các gói trong dự án hiện tại và bất kỳ dự án khác nào mà dự án này phụ thuộc vào. Làm chủ Eclipse V3.4, Phần 2: JDT Trang 7 của 12 developerWorks® ibm.com/developerWorks/vn/ 2. Chọn gói mà bạn muốn di chuyển lớp tới nó, sau đó nhấn OK. Lớp được chuyển đến gói mới một cách vật lý, và tất cả các tham chiếu tới nó trong các mã lệnh — chẳng hạn như các câu lệnh nhập khẩu — được thay đổi theo để tham chiếu tới vị trí mới của nó. Nếu bạn muốn bỏ qua các bước này, bạn có thể kéo và thả một lớp từ một gói tới gói khác. Việc cấu trúc lại bằng di chuyển sẽ tự động diễn ra. Xây dựng một dự án Java Eclipse không có nút Compile. Điều này làm cho những người mới đến lúng túng nhiều, nhưng đây lại là một đặc tính khác tuyệt vời của Eclipse. Bạn không bao giờ cần phải biên dịch một dự án Java vì dự án luôn luôn được xây dựng. Bất cứ khi nào bạn ghi lưu một tệp tin, Eclipse sẽ biên dịch nó và tất cả các tệp tin khác bị nó tác động trong nền sau, và bạn không bao giờ để ý thấy việc này. Hành vi này làm giảm lượng thời gian cần thiết để khởi chạy dự án của bạn do bạn không bao giờ phải đợi để biên dịch lại nó. Chạy một dự án Cách đơn giản nhất để chạy một dự án Java là mở tệp tin có chứa phương thức main, sau đó nhấn vào Run trên thanh công cụ. Làm như vậy sẽ tạo ra một cấu hình khởi chạy. Lần sau khi bạn muốn chạy dự án, hãy nhấn vào mũi tên bên cạnh Run, như được hiển thị trong Hình 7 và chọn cấu hình có tên lớp chứa phương thức main của bạn. Hình 7. Chạy một dự án Gỡ rối một dự án Bạn nên bắt đầu gỡ rối bằng cách đặt các điểm ngắt trong mã của bạn. Bạn có thể làm như vậy bằng cách nhấn vào cột xa nhất bên trái trong trình soạn thảo, kề bên dòng mà trên đó bạn muốn đặt điểm ngắt. Khởi động trong chế độ Gỡ rối (Debug) cũng giống như khi chạy dự án của bạn, chỉ khác là bạn nhấn vào Debug trên thanh công cụ, thay vì Run. Hình 8. Gỡ rối một dự án Khi chạm đến một điểm ngắt, cửa sổ Eclipse nổi lên tiền cảnh (foreground) và tự động chuyển đến phối cảnh Debug có chứa các khung nhìn để giúp bạn gỡ rối chương trình. Đây là một mô tả ngắn gọn về một số khung nhìn thường hay được sử dụng: Khung nhìn Debug Khung nhìn này kiểm soát chương trình hiện đang chạy, cho phép bạn xem ngăn xếp và chạy chương trình từng bước một. Bạn thậm chí có thể sử dụng khung nhìn này để tạm dừng hoặc dừng chương trình. Làm chủ Eclipse V3.4, Phần 2: JDT Trang 8 của 12 ibm.com/developerWorks/vn/ developerWorks® Khung nhìn các biến (Variables view) Khung nhìn này hiển thị các biến địa phương trong phương thức hiện hành. Các giá trị thay đổi khi bạn thực hiện chương trình từng bước. Khung nhìn các điểm ngắt (Breakpoints view) Khung nhìn này liệt kê các điểm ngắt hiện tại. Bạn có thể bật hoặc tắt các điểm ngắt bằng cách lựa chọn hay xóa chúng trong danh sách. Khung nhìn các biểu thức (Expressions view) Khung nhìn này cho phép bạn gõ vào bất kỳ biểu thức Java tùy ý nào và xem giá trị của nó trong bối cảnh của điểm hiện tại trong việc thực hiện chương trình. Để thêm các biểu thức Java cho khung nhìn này: 1. Nhấn chuột phải vào bên trong khung nhìn và sau đó nhấn vào Add expression. 2. Trong cửa sổ vừa xuất hiện, gõ vào biểu thức của bạn và nhấn OK. Biểu thức được thêm vào khung nhìn các biểu thức và giá trị của nó được cập nhật trong khi bạn đi từng bước qua mã lệnh.Ghi nhớ rằng việc gõ vào một biểu thức để thay đổi giá trị của bất kỳ biến nào có thể có một ảnh hưởng không lường trước được trên mã của bạn. Kết luận Bài viết này đã xem xét JDT Eclipse và các đặc tính mà nó đưa ra. Bạn bây giờ biết làm thế nào để tùy chỉnh các phần của JDT theo ý muốn của bạn và sẽ hiểu được một số điều có thể làm cho người mới đến với JDT lúng túng. Phần 3 của loạt bài "Mastering Eclipse" này tập trung vào phần mạnh nhất của JDT — là trình soạn thảo của nó — và kiểm tra khả năng hùng mạnh của nó. Làm chủ Eclipse V3.4, Phần 2: JDT Trang 9 của 12 developerWorks® ibm.com/developerWorks/vn/ Tài nguyên Học tập • Đọc "Mastering Eclipse V3.4, Part 1: The Eclipse workbench" nếu bạn là người mới đến với Eclipse. • Tìm thêm thông tin trong Workbench User Guide in Eclipse Help, một tài nguyên của Eclipse Foundation. • Xem Eclipse IDE Pocket Guide. • Truy nhập trang chính thức Những câu hỏi thường gặp của Eclipse. • Đọc Eclipse for Dummies, của David Carlson. • Hãy chắc chắn đọc Eclipse Distilled, của David Carlson. • Xem "Danh sách khuyến khích đọc Eclipse." • Duyệt qua tất cả nội dung Eclipse trên developerWorks. • Bạn mới đến với Eclipse ? Đọc bài viết trong developerWorks "Get started with Eclipse Platform" để tìm hiểu nguồn gốc và kiến trúc của nó và làm thế nào để mở rộng Eclipse bằng các trình cắm thêm. • Mở rộng các kỹ năng Eclipse của bạn bằng cách xem Các tài nguyên dự án Eclipse của developerWorks IBM. • Để nghe các cuộc phỏng vấn và các cuộc thảo luận thú vị cho các nhà phát triển phần mềm, hãy xem developerWorks podcasts. • Theo sát Các sự kiện kỹ thuật và webcasts của developerWorks. • Theo dõi và tìm hiểu về các công nghệ và các chức năng sản phẩm IBM và mã nguồn mở với Các trình diễn mẫu theo yêu cầu miễn phí của developerWorks. • Hãy ghi tên dự các hội nghị sắp tới, các cuộc triển lãm thương mại, webcasts và Các sự kiện khác trên khắp thế giới đang được các nhà phát triển mã nguồn mở của IBM quan tâm. • Hãy truy cập vào Vùng mã nguồn mở của developerWorks để có được rất nhiều các thông tin hướng dẫn, các công cụ và các cập nhật dự án, giúp bạn phát triển với các công nghệ mã nguồn mở và sử dụng chúng với các sản phẩm của IBM. Lấy sản phẩm và công nghệ • Xem Eclipse technology downloads tại IBM alphaWorks. • Tải về Eclipse Platform và các dự án khác từ Eclipse Foundation. • Tải về các phiên bản đánh giá sản phẩm của IBM và nhận các công cụ thực hành phát triển ứng dụng của bạn và các sản phẩm phần mềm trung gian từ DB2®, Lotus®, Rational®, Tivoli® và WebSphere®. • Đổi mới dự án phát triển phần mềm mã nguồn mở tiếp theo của bạn bằng phần mềm thử nghiệm của IBM, có sẵn để tải về hoặc trên đĩa DVD. Thảo luận • Các nhóm tin chung về nền tảng Eclipse sẽ là điểm dừng đầu tiên của bạn để thảo luận các vấn đề về Eclipse. (Việc lựa chọn này sẽ khởi chạy ứng dụng đọc tin tức Usenet mặc định của bạn và mở eclipse.platform). Làm chủ Eclipse V3.4, Phần 2: JDT Trang 10 của 12 ibm.com/developerWorks/vn/ developerWorks® • Các nhóm tin chung về Eclipse có nhiều tài nguyên cho những người quan tâm đến việc sử dụng và mở rộng Eclipse. • Tham gia vào các blog của DeveloperWorks và bắt đầu tham gia vào cộng đồng developerWorks. Làm chủ Eclipse V3.4, Phần 2: JDT Trang 11 của 12 developerWorks® ibm.com/developerWorks/vn/ Đôi nét về tác giả Prashant Deva Prashant Deva là người sáng lập của Placid Systems và tác giả của cuốn sách Trình cắm thêm ANTLR Studio cho Eclipse. Ông cũng cung cấp các tư vấn liên quan đến việc phát triển các trình cắm thêm ANTLR và Eclipse. Ông đã viết một số bài báo liên quan đến các trình cắm thêm ANTLR và Eclipse và ông thường xuyên đóng góp các ý kiến và các báo cáo lỗi cho các nhóm phát triển Eclipse. Ông hiện đang bận rộn tạo ra công cụ nhà phát triển tuyệt vời tiếp theo © Copyright IBM Corporation 2009 (www.ibm.com/legal/copytrade.shtml) Nhẫn hiệu đăng ký (www.ibm.com/developerworks/vn/ibm/trademarks/) Làm chủ Eclipse V3.4, Phần 2: JDT Trang 12 của 12