J'écris une classe Java qui analyse les fichiers journaux. Le fichier .class compilé doit être chargé dans une plate-forme de surveillance tierce (eG) pour le déploiement et l'invocation. Malheureusement, la plate-forme tierce me permet seulement de télécharger un seul fichier .class. Mon implémentation actuelle a pour fonction de trouver le 'dernier fichier' dans un dossier conforme à un masque de fichier (* CJL * .log) et utilise 2 classes anonymes, une pour filtrer une liste de répertoires et une autre pour trier un liste de fichiers basée sur ModifiedDt. Quand je compile cela, j'obtiens 3 fichiers .class (Monitor.class, Monitor $ 1.class, Monitor $ 2.class) que je ne peux pas déployer.Puis-je compiler des classes anonymes ou internes dans un seul fichier java .class?
Est-il possible de compiler les classes anonymes dans un seul fichier .class pour le déploiement sur la plate-forme de surveillance tierce?
J'ai joint le code de ma fonction 'Find Lastest file' pour illustration.
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 "";
}
}
Je suppose qu'il est possible de le faire de la manière « stupide » en obtenant un fichier brut liste et de faire le filtre/tri moi-même mais je suis inquiet ce ne sera pas performant.
Des idées?
Michael
Aha! Brillant! Je n'ai absolument pas pensé à ça. Merci :) –