Wie erstelle ich ein neues URLObjekt mit einer lokalen Datei für Unit-Tests?
Wie erstelle ich ein neues URLObjekt mit einer lokalen Datei für Unit-Tests?
Antworten:
Verwenden von Java 7:
Paths.get(string).toUri().toURL();
Allerdings möchten Sie wahrscheinlich eine bekommen URI. ZB URIbeginnt ein mit, file:///aber eine URL mit file:/(zumindest ist es das, was toStringproduziert).
java.nio.file.Paths. Stellen Sie außerdem sicher, dass Sie die Implementierungen in "URI vs URL" meinen . Anway java.net.URL.toString()produziert unter Unix dasselbe, wie es sein muss. Es wird nur ein "/" angezeigt, was sehr falsch ist (siehe Datei-URI-Schema ). Ich denke, dies ist in Java aus Gründen, besser zu nutzen java.net.URI. Bei einem Aufruf von wird "file: // [host] /" korrekt generiert .toString().
new URL("file:///your/file/here")
/your/file/hereist ein absoluter Pfad zu einer Datei unter Unix / Linux. Unter Windows wäre das anders, denke ich.
new URL("file:my.properties");
File myFile=new File("/tmp/myfile");
URL myUrl = myFile.toURI().toURL();
Schauen Sie sich hier die vollständige Syntax an: http://en.wikipedia.org/wiki/File_URI_scheme
für Unix-ähnliche Systeme wird es so sein, wie @Alex sagte, file:///your/file/herewährend es für Windows-Systeme sein würdefile:///c|/path/to/file
File.toURI().toURL()ist der richtige Weg
.propertiesDatei ist.
java file urlIn meinem Fall bedeutet dies, dass ich nach dem Format einer file://URL in Java gesucht habe , um sie in einer .propertiesDatei zu verwenden oder manuell
file://ist leider notwendig. Systemabhängigkeit ist kein so großes Problem, da es sich um eine veränderbare Eigenschaft handelt.
Sie können auch verwenden
[AnyClass].class.getResource(filePath)
jar:file:/home/user/a/b/c/foo.jar!/com/example/stuff/config.txt.