Wie erstelle ich ein neues URL
Objekt mit einer lokalen Datei für Unit-Tests?
Wie erstelle ich ein neues URL
Objekt 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 URI
beginnt ein mit, file:///
aber eine URL mit file:/
(zumindest ist es das, was toString
produziert).
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/here
ist 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/here
während es für Windows-Systeme sein würdefile:///c|/path/to/file
File.toURI().toURL()
ist der richtige Weg
.properties
Datei ist.
java file url
In meinem Fall bedeutet dies, dass ich nach dem Format einer file://
URL in Java gesucht habe , um sie in einer .properties
Datei 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
.