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. XemPhầ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.
Khám phá 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.
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:
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:
o 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.
o 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.
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
Lưu ý: 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ứcWarning. 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.
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ó:
Chọn bất kỳ biến nào trong trình soạn thảo.
1. 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.
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
2. 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.
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.
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.
Bài 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ó.
» Tin mới nhất:
» Các tin khác: