Dans mon projet, j'ai un module pour télécharger plusieurs images et créer les vignettes à la fois. Pour le téléchargement, j'utilise JavaFX et pour créer des vignettes, j'utilise Java.Java tas espace (java.lang.OutOfMemoryError)
J'ai écrit le code de téléchargement et l'appel de la fonction de création de vignettes dans une boucle for. Si le nombre d'images téléchargement est plus de cinq ans, je reçois cette erreur:
Java heap space (java.lang.OutOfMemoryError)
Je pense, le code pour le téléchargement est très bien, et le problème avec le code de création de vignettes. Comment puis-je résoudre ce problème? Comment devrais-je changer la structure de mon code?
Ceci est mon code JavaFX:
fgUrl = fc.getSelectedFiles();
for(fg in fgUrl) {
try {
System.gc();
fileURL = "file:///{fg.toString()}";
fileURL = fileURL.replace("\\", "/");
def dt = DateTime{}.instant;
var datetime = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss:SSS").format(dt);
pic_url = datetime.replace("-", "_").replace(":", "_").replace(" ", "_");
datetime = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(dt);
f = new File("C:\\uploaded\\{pic_url}.jpg");
uploadFile(fileURL, f,save_index,datetime,pic_url); // This function will save selected image in the working directory of the system.
var resize_ob = new resizeImage(url.replace("file:///", ""),"C:/thumbnails/{pic_url2}.jpg");// This will call the java thumbnail creation function.
save_index++;
}
catch(e:Exception) { }
}
Avez-vous des appels récursifs en elle? Voyons une partie du code. – corsiKa
Libérez-vous ensuite la mémoire utilisée par les images? Est-ce que Java peut faire ça? –
Quelles technologies utilisez-vous? Cadres? – Koekiebox