VisualAll là một công cụ Desktop mạnh mẽ giúp trực quan hóa quá trình thực thi mã nguồn Java theo thời gian thực. Thay vì việc theo dõi thuật toán một cách khô khan trên màn hình console, VisualAll sẽ tự động phân tích và hiển thị mảng, đối tượng, con trỏ và các thao tác thay đổi dữ liệu dưới dạng đồ họa "Glassmorphism" sống động.
Tính năng nổi bật:
- 🚀 Trình biên dịch & chạy JDI tích hợp: Phân tích mã Java theo từng bước (Step-by-step).
- 🎨 Giao diện Glassmorphism: Nền tối/sáng cực kỳ hiện đại và mượt mà.
- 🔍 Theo dõi biến tự động: Tự động nhận diện Array, Collection, Map và Object.
- ⚡ Siêu nhẹ & Độc lập: Ứng dụng Desktop thực thụ (Standalone) nhờ Tauri, không cần chạy web server rườm rà.
Bạn có 2 cách để bắt đầu với VisualAll: chạy ứng dụng trực tiếp hoặc tự Build từ mã nguồn.
Bạn không cần phải cài đặt môi trường lập trình.
Tải bản Portable (file .zip), giải nén ra và chạy file VisualAll.exe!
Yêu cầu hệ thống:
- Node.js &
npm - Java Development Kit (JDK) 17+ & Maven
- Rust (Để build Tauri)
Tự động Build (Chỉ cần 1 click): Dự án đã tích hợp sẵn một script PowerShell để tự động hóa toàn bộ quá trình:
- Mở PowerShell dưới quyền Administrator (nếu cần thiết).
- Chạy lệnh:
.\build.ps1Script sẽ tự động:
- Biên dịch lõi Java (
core-jdi.jar). - Cài đặt gói NPM và biên dịch Frontend (React).
- Trích xuất file
.jarvà đóng gói ứng dụng Tauri (.exe). - Tạo sẵn thư mục
VisualAll-Portablevà fileVisualAll-Setup.exetại thư mục gốc.
VisualAll được thiết kế theo mô hình Sidecar Architecture tối ưu hiệu suất với 3 module chính:
-
Frontend (React.js + Vite)
- Đảm nhiệm toàn bộ giao diện người dùng (UI).
- Vẽ các hoạt ảnh mảng, đối tượng bằng CSS hiện đại (Zoom/Pan/Pinch).
- Render mã nguồn với cú pháp Highlight (PrismJS).
-
Middleware / Desktop Host (Tauri - Rust)
- Bọc Frontend vào một cửa sổ Windows Native nhỏ gọn, tốn ít RAM.
- Nhúng (embed) backend Java
.jartrực tiếp vào mã nguồn C++. - Quản lý vòng đời (spawn/kill) của tiến trình Java và chuyển tiếp các luồng sự kiện (Stdout/Stderr) từ Backend lên Frontend thông qua IPC (Inter-Process Communication).
-
Backend (Java JDI -
core-jdi)- Sử dụng JDI (Java Debug Interface) để can thiệp sâu vào tiến trình đang chạy.
- Biên dịch mã nguồn người dùng động (On-the-fly Compilation).
- Chụp ảnh trạng thái của bộ nhớ (Variables Snapshot) ở từng dòng lệnh và gửi tín hiệu dạng chuỗi
JSONra luồng tiêu chuẩn (Standard Output).
