Tôi đã tìm thấy nhiều tài liệu tham khảo giải thích làm thế nào để lập trình biên dịch một lớp Java bằng cách sử dụng lớp JavaCompiler
:Có thể lập trình biên dịch mã nguồn java chỉ trong bộ nhớ không?
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
int result = compiler.run(null, null, null, "a_file_name");
Tuy nhiên, tôi muốn biết nếu có một thư viện mã nguồn mở cho phép tôi biên dịch mã nguồn tạo lập trình (do đó không có tệp src được tham gia) và tạo một số mã byte trong luồng đầu ra (không tạo tệp lớp trong hệ thống tệp).
Ví dụ, tôi đang tìm kiếm để có thể viết một cái gì đó như thế này:
InputStream input = generateSourceCode();
OutputStream output = getByteCode(input);
doCoolStuffWithByteCode(output);
Cảm ơn sự giúp đỡ nào.
Xem trình biên dịch [SSCCE ** dựa trên văn bản **] (http://pscode.org/stbc/) để có bản trình diễn. về những gì James & Brian đang đề cập đến. STBC sử dụng 'JavaCompiler' /' SimpleJavaFileObject'. –