Der er kun én fejl ved Merge klassen, og det er at den ikke selv tager hånd om fejl, den smider exceptions videre til den klasse som bruger Merge, sandsynligvis en af de andre klasser som vi ikke har set endnu. Merge skal have stien til en mappe som parameter, ellers kommer den med fejlen ArrayIndexOutOfBoundException:0 hvilket betyder at index 0 i arrayet 'args' ikke eksisterer, args er initieret, men indeholder ingen elementer. Derfor fejler den allerede på første linie: File objDir = new File(args[0]);
Første index i et array er 0, så vi retter til det du foreslår File currentFile = new File(args[0] + fileNames[i-1]);
vil du første gang løkken kører forsøge at få fat i index -1 i arrayet fileNames for (int i = 0; i < fileNames.length; i++) { File currentFile = new File(args[0] + fileNames[i-1]);
koden vil straks fejle.
Prøv at teste nedenstående kode.
public class Test { public static void main(String[] args){ if( args.length == 0){ // Hvis args ikke indeholder nogen elementer System.out.println("Du mangler at angive parameter !"); System.exit(0); } else{ for (int i = 0; i < args.length; i++) { System.out.println("Element " + i + " i args er: " + args[i]); } System.out.println("Der er ikke flere elementer args!"); } }
Prøv at køre koden UDEN parameter. Prøv derefter med parameter, altså: java Test A B C D E F G
Iøvrigt virker Merge klassen perfekt på windows, når den bliver brugt som den er tiltænkt.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.