Ich schreibe eine Java-Klasse, die Protokolldateien analysiert. Die kompilierte .class-Datei muss in eine Überwachungsplattform (eG) von Drittanbietern zur Bereitstellung und zum Aufruf geladen werden. Leider erlaubt mir die 3rd-Party-Plattform nur eine einzige .class-Datei hochzuladen.Kann ich anonyme oder innere Klassen in einer einzelnen Java-.class-Datei kompilieren?
Meine aktuelle Implementierung hat eine Funktion, um die 'neueste' Datei in einem Ordner zu finden, der einer Dateimaske (* CJL * .log) entspricht und 2 anonyme Klassen verwendet, eine zum Filtern einer Verzeichnisliste und eine andere zum Sortieren von Liste der Dateien basierend auf ModifiedDt. Wenn ich das kompiliere, bekomme ich 3 .class-Dateien (Monitor.class, Monitor $ 1.class, Monitor $ 2.class), die ich nicht bereitstellen kann.
Ist es möglich, die anonymen Klassen in einer einzelnen .class-Datei für die Bereitstellung auf der Überwachungsplattform von Drittanbietern zu kompilieren?
Ich habe den Code meiner Funktion "Letzte Datei finden" zur Veranschaulichung beigefügt.
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 "";
}
}
Ich nehme an, es möglich ist, mich diese die ‚stumme‘ Art und Weise zu tun, indem Sie eine RAW-Datei immer Auflistung und dabei die Filter/sortieren, aber ich mache mir Sorgen, dies nicht performant sein wird.
Irgendwelche Ideen?
Michael
Aha! Brillant! Daran habe ich überhaupt nicht gedacht. Vielen Dank :) –