Trình Biên Dịch Ngược Trong Java Mà Mọi LTV đều Nằm Lòng
Có thể bạn quan tâm
- Trình biên dịch ngược trong Java là gì?
- Khái niệm JAD Decompiler
- Trình biên dịch ngược trong Java - DJ Java Decompiler (UI cho JAD)
- Trình biên dịch ngược trong Java - JDProject (Dự án trình biên dịch Java)
- Trình biên dịch ngược trong Java - Procyon
- Trình biên dịch ngược trong Java - JBVD
- Trình biên dịch CFR
- Ưu điểm và nhược điểm của trình biên dịch ngược trong Java
- Ưu điểm của trình dịch ngược Java
- Nhược điểm của trình dịch ngược trong Java
Trình biên dịch ngược trong Java là gì?
Trình biên dịch ngược trong Java là một loại đặc biệt của trình biên dịch thể hiện quá trình đảo ngược của trình biên dịch Java. Nó trả lại mã nguồn tương ứng trong Java tới mã Đối tượng ở dạng tệp lớp ở dạng nhị phân. Nói một cách đơn giản, trình dịch ngược trong Java lấy tệp lớn làm đầu vào và tạo ra mã nguồn trong Java làm đầu ra. Nhưng trình dịch ngược không bao giờ tạo ra bản sao chính xác của mã nguồn ban đầu. Nguyên nhân là do có một số loại mất thông tin từ mã nguồn trong khi biên dịch chương trình Java.
Trình biên dịch ngược trong Java là gì?
Có một số chương trình dịch ngược Java có sẵn, nhưng việc lựa chọn trong vô vàn các trình dịch ngược là vô cùng khó khăn. Do vậy, chúng ta sẽ cùng thảo luận về một số trình dịch ngược phổ biến và được sử dụng rộng rãi trong Java.
Khái niệm JAD Decompiler
JAD ( Java Decompiler) là trình dịch ngược không được duy trì trong Java. JAD cung cấp giao diện dòng lệnh cho người dùng. Ứng dụng dòng lệnh này chuyển đổi các tệp .class vào tệp java. Nó sẽ biên dịch ngược lại các tệp lớp hoặc biên dịch code thành mã nguồn Java. Ứng dụng JAD cơ bản được viết trong ngôn ngữ C++. Nó giúp lập trình viên làm đẹp code trong Java để tăng cường khả năng đọc của mã nguồn được tạo ra.
Trình biên dịch ngược trong Java - DJ Java Decompiler (UI cho JAD)
Trình biên dịch ngược DJ Java là trình dịch ngược dựa trên cửa sổ tạo mã nguồn Java từ tệp lớp nhị phân được biên dịch. Nó hoạt động như một GUI (GIao diện người dùng đồ họa) cho các trình dịch ngược JAD. Nó được phát triển bởi Atanas Nehskov.
Trình dịch ngược DJ này có thể dịch ngược DJ này có thể dịch ngược các tệp đã biên dịch thành mã nguồn ban đầu dưới dạng thử nghiệm này rất đơn giản và dễ sử dụng. Điều thú vị là ngay cả khi bạn chưa cài đặt Java trong máy thì bạn cũng có thể làm việc với trình dịch ngược Java này. Ngoài ra, bạn có thể dịch ngược nhiều tệp lớp cùng một lúc.
>>> Đọc thêm: Định danh trong Java - Quy tắc định danh trong lập trình Java
Trình biên dịch ngược trong Java - JDProject (Dự án trình biên dịch Java)
Dự án trình biên dịch Java (JDProject) là một bộ công cụ được phát triển để trích xuất mã nguồn từ tệp lớp nhị phân đã được biên dịch nhất định. Nó là một trong những trình dịch ngược Java ngoại tuyến để dịch ngược mã Java được viết bằng Java 5 và các phiên bản mới hơn. Trình dịch ngược này có thể được sử dụng cho tất cả các nền tảng. Nó bao gồm ba công cụ: JD-GUI, JD-core, JD- Eclipse, JD- Intellij, JD-GUI là một giao diện đồ thoaj để hiển thị mã nguồn tương ứng với các tệp lớp. JD - Eclipse là một nền tảng trình plug=in cho IDE eclipse. JD - Intellij là một trình Plug-in cho Intellij IDEA.
Trình biên dịch ngược trong Java - Procyon
Procyon là một trình dịch ngược Java khác. Nó được phát triển bởi Mike Strobel. Sử dụng Procyon rất dễ sử dụng khi làm việc với các chú thích, enum, các lớp Local, và các tham chiếu Phương thức và Lambdas của Java 8.
Trình biên dịch ngược trong Java - JBVD
JBVD là viết tắt của Java Bytecode Viewer và Decompiler. Nó hoạt động trên cơ sở các thư viện- mã nguồn mở JavaScript. Nó chỉ có thể sử dụng cho hệ điều hành Windows. Nhưng nếu chúng ta muốn làm việc với trình dịch ngược này, chúng ta cần cài đặt Java trong hệ thống của mình.
Trình biên dịch CFR
Dạng đầy đủ của CFR Class File Reader. Decompiler này được viết hoàn toàn bằng Java6. Tuy nhiên, trình dịch ngược này vẫn hỗ trợ các chức năng mới nhất của java 8 như lambdas. Chỉ có một hạn chế của việc sử dụng trình dịch ngược này là nó không phải là một chương trình mã nguồn mở.
>>> Đọc thêm: Java Null - Khám phá các sự thật chưa biết về Java Null
Ưu điểm và nhược điểm của trình biên dịch ngược trong Java
Ưu điểm của trình dịch ngược Java
Có rất nhiều ưu điểm mà chúng ta nên sử dụng trình biên dịch ngược:
- Các trình biên dịch có thể tiết kiệm thời gian của chúng ta khi đã mất mã nguồn tương ứng của mã byte nhị phân. Nếu chúng ta có mã đã biên dịch, thì chúng ta có thể dễ dàng lấy mã nguồn với sự trợ giúp của trình đình ngược.
- Trình biên dịch là thành phần được đánh giá cao của bất kỳ bộ vi phạm bản quyền phần mềm nào.
- Trình biên dịch cũng giúp chúng ta làm rõ hoặc cải thiện những tài liệu kém. Sau khi tạo mã nguồn từ bytecode, chúng ta sẽ nhận được tài liệu thích hợp cho từng dòng mã mà chúng không thực sự được viết trong mã.
>>> Tham khảo: Khóa học lập trình Java
Nhược điểm của trình dịch ngược trong Java
Bên cạnh những ưu điểm trên, Trình dịch ngược Java cũng có một vài nhược điểm. Ví dụ như mã Java có cấu trúc và mã byte không có cấu trúc. Hơn nữa, sự chuyển đổi không phải là một, hai chương trình Java khác nhau có thể mang lại mã byte giống hệt nhau.
Kết luận: Trên đây là một số thông tin về trình biên dịch ngược trong Java. Hy vọng bạn có thể hiểu rõ hơn về trình biên dịch ngược và có thể áp dụng các kiến thức này trong các dự án tiếp theo của mình. Tìm hiểu thêm về các khóa học lập trình Java qua các khóa học lập trình tại Viện công nghệ thông tin T3H.
Từ khóa » Trình Biên Dịch Là Gì Java
-
Trình Biên Dịch Java Hoạt động Thế Nào? - NIIT - ICT Hà Nội
-
Biên Dịch Trong Chương Trình Java
-
Thông Dịch Và Biên Dịch Trong Java - Programming - Dạy Nhau Học
-
Sự Khác Nhau Giữa Trình Biên Dịch Và Trình Thông Dịch - Viblo
-
Classpath Và Biên Dịch Java Từ Command Line - Viblo
-
Viết Và Biên Dịch Chương Trình Java Helloworld Không Dùng IDE
-
Tổng Quan Về Ngôn Ngữ Lập Trình Java - GP Coder
-
Phân Biệt Trình Biên Dịch - Thông Dịch
-
Hướng Dẫn Thiết Kế Trình Biên Dịch Là Gì ? Trình Biên Dịch Java ...
-
Trình Biên Dịch – Wikipedia Tiếng Việt
-
Java (ngôn Ngữ Lập Trình) – Wikipedia Tiếng Việt
-
Kiến Thức IT - So Sánh Trình Biên Dịch Của Java Vs C++ ... - Facebook
-
Java Là Gì? Tổng Quan Về Ngôn Ngữ Lập Trình Java | TopDev
-
Tại Sao Java Là Một Ngôn Ngữ được Biên Dịch Và Thông Dịch?