Я пишу класс Java, который анализирует файлы журнала. Скомпилированный файл .class должен быть загружен в стороннюю платформу мониторинга (eG) для развертывания и вызова. К сожалению, сторонняя платформа позволяет загружать только один файл .class.
Моя текущая реализация имеет функцию для поиска «последнего» файла в папке, которая соответствует маске файла (* CJL * .log) и использует 2 анонимных класса, один для фильтрации списка каталогов и другой для сортировки списка. файлов на основе ModifiedDt. При компиляции я получаю 3 файла .class (Monitor.class, Monitor $ 1.class, Monitor $ 2.class), которые я не могу развернуть.
Можно ли скомпилировать анонимные классы в один файл .class для развертывания на сторонней платформе мониторинга?
Я приложил код моей функции «Найти последний файл» для иллюстрации.
private String FindLatestFile(String folderPath) {
FilenameFilter filter = new FilenameFilter() {
public boolean accept(File dir, String name) {
if (name.endsWith(".log")
& name.contains("CJL"))
return true;
else
return false;
}
};
File dir = new File(folderPath);
File[] files = dir.listFiles(filter);
if (files.length > 0) {
Arrays.sort(files, new Comparator<File>() {
public int compare(File f1, File f2) {
return Long.valueOf(f1.lastModified()).compareTo(
f2.lastModified());
}
});
File newest = files[files.length - 1];
return newest.toString;
} else {
return "";
}
}
Я полагаю, что это можно сделать 'глупым' способом, получив список необработанных файлов и выполнив фильтр / сортировку самостоятельно, но я боюсь, что это не будет эффективным.
Есть идеи?
Michael