Bonjour!
J'utilise dans mon code des fichiers Excel d'entrée et de sortie types. Pour ne pas prendre le risque de corrompre ce fichier de sortie type, je le copie brutalement avec l'API JExcel, or il est assez gros (presque 13Mo). Mon code ne se lance même pas, car le code bloque sur cette copie qui est trop grosse :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 public Simulation(String myFile) throws java.io.IOException, jxl.read.biff.BiffException, jxl.write.WriteException { //--------- // Création du fichier de sortie: //--------- Workbook outputtype = Workbook.getWorkbook(new File("Output type - Type277 (NE PAS MODIFIER).xls")); WritableWorkbook output = Workbook.createWorkbook(new File("Output - Type277 simulation.xls"), outputtype); outputtype.close(); ... }
J'ai l'erreur :
Warning: Cannot read name ranges for T - setting to empty
Warning: Cannot read name ranges for Type - setting to empty
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at jxl.read.biff.FormulaRecord.<init>(FormulaRecord.java:157)
at jxl.read.biff.SheetReader.read(SheetReader.java:629)
at jxl.read.biff.SheetImpl.readSheet(SheetImpl.java:686)
at jxl.read.biff.WorkbookParser.getSheet(WorkbookParser.java:252)
at jxl.write.biff.WritableWorkbookImpl.copyWorkbook(WritableWorkbookImpl.java:934)
at jxl.write.biff.WritableWorkbookImpl.<init>(WritableWorkbookImpl.java:334)
at jxl.Workbook.createWorkbook(Workbook.java:339)
at jxl.Workbook.createWorkbook(Workbook.java:320)
at Simulation.<init>(Simulation.java:37)
at Simulation.main(Simulation.java:163)
Process completed.
Je sais qu'il est possible d'allouer plus de memoire via une commande -Xms ou -Xmx dans JVM mais je voudrais que cette allocation soit automatique, donc dans le code.... Est-ce possible?
Sinon, je devrais créer un plus petit fichier sans mise en forme, qui ne nécessite pas de copie, pour ensuite venir mettre les valeurs de l'un dans une copie manuelle de l'autre.... ca commence a devenir compliqué pour l'équipe de flemmards pour qui je m'efforce de coder ce petit logiciel!!
Je ne vois pas d'autres solutions.... ?
Merci!
Lydia
Partager