Tôi đang tạo một công cụ sẽ ghi các tệp .java, sau đó (hy vọng) biên dịch các tệp đó thành tệp .class. Tất cả trong một quá trình, người dùng chọn một thư mục tệp nơi nhiều tệp .java được viết. Bây giờ tôi muốn chương trình biên dịch các tệp Java này.Biên dịch các tệp .java bên ngoài từ trong Java
12
A
Trả lời
14
JavaCompiler
là bạn của bạn. Kiểm tra tài liệu here
Và đây là một ví dụ về cách bạn có thể sử dụng trình biên dịch API
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
DiagnosticCollector<JavaFileObject> diagnostics = new DiagnosticCollector<>();
StandardJavaFileManager fileManager = compiler.getStandardFileManager(diagnostics, null, null);
Iterable<? extends JavaFileObject> compilationUnits = fileManager.getJavaFileObjectsFromStrings(Arrays.asList("YouFileToCompile.java"));
JavaCompiler.CompilationTask task = compiler.getTask(null, fileManager, diagnostics, null,
null, compilationUnits);
boolean success = task.call();
fileManager.close();
4
Các JavaCompiler
sẽ null
nếu mã đang chạy từ một JRE. Nó cần một JDK, bao gồm tools.jar
.
Các vấn đề liên quan
- 1. Biên dịch một tệp Java ... bằng một chương trình Java
- 2. Các tệp JSP Java (* __ jsp.java) được biên dịch ở đâu?
- 3. Java - Cách biên dịch một tệp với Java Eclipse
- 4. Cách biên dịch dự án java với tệp jar bên ngoài trong thiết bị đầu cuối Linux
- 5. Biên dịch Java 7 sang Java 6
- 6. nhập tệp jar bên ngoài
- 7. Biên dịch Java của tệp .java không có lớp công khai
- 8. Phát triển một chương trình java để biên dịch các tệp .java
- 9. Mở một tệp bằng ứng dụng bên ngoài trên Java
- 10. Các tùy chọn để biên dịch động trong Java 5
- 11. Trong Linux, cách thực thi tệp jar Java với các tệp jar bên ngoài?
- 12. Java 1.3.1, lỗi biên dịch
- 13. Biên dịch sang bytecode java (không sử dụng Java)
- 14. biên dịch chương trình java
- 15. Building vs Biên dịch (Java)
- 16. Biên dịch Java thành asm.js
- 17. Scripting java: import class từ một tập tin bên ngoài
- 18. tải jQuery-Mẫu từ tệp bên ngoài?
- 19. Trình biên dịch Java sang JavaScript
- 20. Làm cách nào để biên dịch các gói trong java?
- 21. R từ bên trong Java
- 22. Biên dịch java thành mã gốc?
- 23. Thực hiện chương trình bên ngoài trong java
- 24. Cắm vào trình biên dịch Java
- 25. Làm cách nào để chạy tệp java thực thi .jar từ bên ngoài NetBeans IDE?
- 26. Thừa kế nguồn java bên ngoài trong dự án GWT
- 27. .NET, Java tới trình biên dịch JavaScript
- 28. Sử dụng Java Compiler API để biên dịch nhiều tệp java
- 29. biến truy cập của lớp bên ngoài trong Java
- 30. Các lớp bên trong: Android và Java
Tôi đã thử điều này và thay thế "YouFileToCompile.java" bằng đường dẫn tuyệt đối (vấn đề?) Bây giờ tôi nhận được NullPointerException tại: StandardJavaFileManager fileManager = compiler.getStandardFileManager (chẩn đoán, null, null); –
Âm thanh như biến 'trình biên dịch' là' null'. Đảm bảo bạn có cài đặt Java chính xác. Kiểm tra điều này để được trợ giúp http://www.java.net/node/688208 – GETah
Tệp này có phải là tệp .java không? Nếu tôi có mã trong một tập tin .txt, nó sẽ vẫn hoạt động? – JD9999