Biên dịch trong chương trình Java | Laptrinhcanban.com

HOME › >>

Biên dịch trong chương trình Java

Để chạy một chương trình được viết bằng Java, trước tiên bạn cần thực hiện một quy trình gọi là biên dịch để tạo ra file class, từ file nguồn chứa mã chương trình. Dưới đây là hướng dẫn về cách thực hiện biên dịch để tạo file class.

Biên Dịch Là Gì

File nguồn của chương trình được tạo ra bằng ngôn ngữ lập trình có thể được đọc bởi con người, thường là dạng văn bản. Tuy nhiên, khi chương trình được thực thi, nó cần được chuyển đổi thành mã nhị phân có thể được máy tính hiểu được. Quá trình chuyển đổi này được gọi là biên dịch. Thời điểm và cách thực hiện phụ thuộc vào ngôn ngữ lập trình.

Một số ngôn ngữ lập trình như Python, Perl, PHP, Ruby được gọi là ngôn ngữ thông dịch. Điều này có nghĩa là có một chương trình riêng biệt để thực thi chương trình, đọc và chuyển đổi mã nguồn thành mã nhị phân khi chương trình chạy. Ví dụ, với Python, bạn có thể chạy chương trình như sau:

python ten_file_nguon.py

Ở đây, python là chương trình thực thi, và mã nguồn được chuyển đổi thành mã nhị phân khi chạy. Tuy nhiên, việc này không yêu cầu bất kỳ công đoạn biên dịch nào trước đó và không có cơ hội kiểm tra lỗi cho đến khi chương trình thực sự chạy.

Trái lại, ngôn ngữ như C là ngôn ngữ biên dịch. Mã nguồn được biên dịch thành mã nhị phân trước khi chạy. Mã nhị phân được biên dịch được lưu thành tệp thực thi có đuôi .exe và có thể chạy độc lập. Ví dụ, với một chương trình C, bạn có thể chạy nó như sau:

ten_file_chuong_trinh.exe

Quá trình biên dịch kiểm tra lỗi trước khi tạo ra một tệp thực thi, giúp đảm bảo rằng chương trình sẽ không có lỗi trong quá trình chạy, mặc dù vẫn có thể có lỗi thời gian chạy.

Bây giờ hãy cùng tìm hiểu cách Java biên dịch chương trình.

Java, giống như C và một số ngôn ngữ khác, Java yêu cầu một bước biên dịch trước khi thực thi chương trình được viết bằng nó. Do đó, tính chính xác của chương trình được tạo ra được kiểm tra trong quá trình biên dịch, và một tệp mã nhị phân được tạo ra bởi quá trình biên dịch được gọi là tệp lớp trong Java.

Tuy nhiên, khác với C, không có tệp thực thi (có đuôi .exe) được tạo ra bằng quá trình biên dịch trong Java. Để chạy chương trình Java, một chương trình riêng được cung cấp để thực hiện, chương trình này sẽ đọc tệp lớp được tạo ra bởi quá trình biên dịch rồi mới thực thi chương trình.

java tên_tệp_lớp

Như vậy, Java sử dụng một hình thức kết hợp giữa kiểu biên dịch và kiểu thông dịch. Mỗi loại có ưu điểm và nhược điểm riêng, nhưng ở đây Kiyoshi sẽ không tiếp tục giải thích chi tiết hơn. Nếu bạn quan tâm, hãy tìm hiểu thêm thông tin từ các nguồn khác nhé.

Biên Dịch Chương Trình Java

Như Kiyoshi đã giải thích ở trên, để thực thi một chương trình Java được tạo ra, bạn cần phải biên dịch nó trước, tạo ra một tệp mã nhị phân (được gọi là tệp lớp) từ tệp nguồn. Quá trình biên dịch được thực hiện bằng cách sử dụng chương trình javac được gọi bằng lệnh như sau:

javac tên_tệp_nguồn.java

Hãy đảm bảo chương trình javac.exe được sử dụng để biên dịch đã nằm trong thư mục bin của JDK đã được cài đặt (Java Development Kit).

javac Java

Bây giờ, hãy cùng thử biên dịch một chương trình Java.

  1. Mở một trình soạn thảo văn bản và nhập vào một chương trình đơn giản:
class JSample3_1 {
public static void main(String[] args) {
System.out.println("Hello");
}
}
  1. Lưu tệp nguồn với tên JSample3_1.java.

Biên dịch Java

  1. Mở cửa sổ lệnh trong thư mục chứa tệp nguồn. Với hệ điều hành Windows, chúng ta có thể sử dụng Command Prompt hoặc là Window PowerShell để thực hiện điều này.

Mở cửa sổ lệnh

  1. Do chúng ta cần biên dịch tệp nguồn có tên là “JSample3_1.java “, nên hãy nhập lệnh sau và nhấn Enter để tiến hành biên dịch:
javac JSample3_1.java

Biên dịch chương trình Java

  1. Nếu không có lỗi, việc biên dịch đã được chạy xong. Hãy kiểm tra thư mục để tìm tệp lớp JSample3_1.class mới được tạo ra.

Biên dịch chương trình Java Thành công

Nếu tìm thấy tệp lớp JSample3_1.class được tạo, việc biên dịch chương trình từ tệp nguồn JSample3_1.java đã thành công. Tới bước náy, chúng ta đã chuẩn bị xong cho việc chạy chương trình Java.

3. Xử Lý Lỗi Biên Dịch

Khi một lỗi biên dịch xuất hiện trong quá trình tạo tệp lớp từ tệp nguồn, một kiểm tra được thực hiện để đảm bảo rằng chương trình đã viết không có lỗi ngữ pháp. Nếu có lỗi trong chương trình, một thông báo lỗi sẽ xuất hiện trong quá trình biên dịch, và nếu có lỗi, tệp lớp sẽ không được tạo ra.

Bây giờ, hãy cố ý viết một chương trình có lỗi ngữ pháp và biên dịch nó. Mở một trình soạn thảo văn bản và nhập vào chương trình đơn giản sau:

class JSample3_2{
  public static void main(Sting[] args){
    System.aut.println("Hello");
  }
}

Trên đây tệp nguồn đã được cố ý viết Sting[] thay vì String[]aut thay vì out. Hãy lưu tệp nguồn này với tên JSample3_2.java.

Bây giờ, hãy biên dịch nó. Thực hiện lệnh sau trong cửa sổ lệnh:

javac JSample3_2.java

Một thông báo lỗi xuất hiện như sau:

Compilation Error

Thông báo lỗi chỉ ra vị trí có vấn đề trong chương trình, chỉ định dòng và phần nào của dòng là không chính xác và vì lý do gì. Nếu có lỗi, việc biên dịch thất bại và tệp lớp sẽ không được tạo ra.

Để sửa lỗi, bạn cần chỉnh sửa mã nguồn và sau đó thực hiện lại bước biên dịch từ ban đầu.

Tổng kết

Trên đây Kiyoshi đã giải thích về quá trình biên dịch để tạo ra file class từ mã nguồn chương trình Java.

URL Link

https://laptrinhcanban.com/java/java-co-ban-cho-nguoi-moi-bat-dau/viet-chuong-trinh-java/bien-dich-chuong-trinh-java/

Hãy chia sẻ và cùng lan tỏa kiến thức lập trình Nhật Bản tại Việt Nam!

HOME  › >>

Profile
きよしです!笑

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.