06. juli 2004 - 13:23Der er
22 kommentarer og 1 løsning
Path til main fil
Skal bruge en metode til at få stien(directory) på java filen.
Ligenu ser min main kode således ud (har kun skrevet i main):
public static void main(String[] args) { File dir = new File("D:/Udvikling/Java"); File[] fileReferences = dir.listFiles(); for(int i = 0; i<fileReferences.length; i++){ System.out.println("Root directory: "+ fileReferences[i]); }
File dir = new File("D:/Udvikling/Java"); <- Jeg vil gerne undgå at skulle skrive path manuelt i koden...Kan den ikke finde ud af det selv ? Skal lige siges, at den refererer til den mappe som java filen ligger i....
Okay - ja det virkede så ikke her er noget... import java.io.File; import java.net.URL; public class Class1 { public static void main(String[] arg) { Class1 test = new Class1(); URL url = test.getClass().getResource("/"); String location = new File(url.getPath()).getPath(); System.out.println(location); File f = new File(location); } }
Hvad er der galt med den ? Det virker fint her.... Er det mig eller skulle han ikke have stien til java-filen - det skulle denne giver denne her da, ik ?
nej du skal have stien relativt fra hvor du står, så dit første forsøg virkede næsten bortset fra at du skal fjerne "/" og bruge "" eller "." for at få stien fra hvor du loader filen. og der er endnu et problem. for den bliver opfattet som en url så mellemrum bliver udskiftet med %20
Lang forklaring....skal bruges i et andet sammenhæng....ville såmænd også finde ud af hvoen man gjorde hvis man kunne....men læg et svar arne. Har løst det på en helt anden måde...
.class filen indeholder kun navnet på .java filen uden sti. Formentlig fordi at det normalt ikke giver mening at gemme den information - der kan jo være compilet på en anden maskine eller source kan være flyttet eller slettet siden build. Det er f.eks. ret almindeligt at checke ud af source control til et temporært directory, compile og så slette igen.
(og svar)
Synes godt om
Ny brugerNybegynder
Din løsning...
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.