在我的项目中,我有一个模块可以一次性上传多个图像并为其创建缩略图。对于上传,我使用JavaFX并创建缩略图,我使用的是Java。Java堆空间(java.lang.OutOfMemoryError)
我在for循环中写了上传代码和缩略图创建函数的调用。如果上传图片的数量超过五个,我收到此错误:
Java heap space (java.lang.OutOfMemoryError)
我认为,对于上传的代码是好的,并与创建缩略图代码的问题。我怎么解决这个问题?我应该如何改变我的代码结构?
这是我的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) { }
}
你有没有在它的递归调用?让我们看看一些代码。 – corsiKa 2011-02-25 05:38:02
你是否释放了之后图像用完的内存? Java甚至可以做到这一点? – 2011-02-25 05:39:39
您使用的是什么技术?构架? – Koekiebox 2011-02-25 05:40:02