Xin chào Tôi có yêu cầu tạo, biên dịch và tải các lớp java chạy thời gian. Sử dụng FTL tôi đang tạo các tệp nguồn java và có thể biên dịch nguồn nếu không có sự phụ thuộc động.Sử dụng Java Compiler API để biên dịch nhiều tệp java
Để xây dựng với một cá thể, tôi có hai tệp nguồn java, một giao diện và lớp triển khai của nó. Tôi có thể biên dịch các giao diện sử dụng java biên dịch api như sau
String classpath=System.getProperty("java.class.path");
String testpath =classpath+";"+rootPath+"/lib/is_wls_client.jar;"+rootPath+"/rtds_wls_proxyclient.jar;.;";
File javaFile = new File(javaFileName+".java");
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
List<String> optionList = new ArrayList<String>();
optionList.addAll(Arrays.asList("-classpath",testpath));
StandardJavaFileManager sjfm = compiler.getStandardFileManager(null, null, null);
Iterable fileObjects = sjfm.getJavaFileObjects(javaFile);
JavaCompiler.CompilationTask task = compiler.getTask(null, null, null,optionList,null,fileObjects);
task.call();
sjfm.close();
tôi đặt đường dẫn lớp cho các lớp học tĩnh mà đã có trong classpath, nhưng phương pháp này không làm việc cho các lớp học năng động tạo ra? Bất kỳ trình nạp lớp tùy chỉnh nào sẽ thực hiện việc sửa lỗi? thực hiện cuối cùng của tôi sẽ được ở máy chủ web/app
Bất kỳ thông tin phản hồi sẽ được đánh giá cao
Satheesh
Sau khi xác định một lớp, bạn cần phải giải quyết nó. –