Come posso creare un nuovo URL
oggetto usando un file locale, ai fini di unit test?
Come posso creare un nuovo URL
oggetto usando un file locale, ai fini di unit test?
Risposte:
Utilizzando Java 7:
Paths.get(string).toUri().toURL();
Tuttavia, probabilmente vorrai ottenere un URI
. Ad esempio, un URI
inizia con file:///
ma un URL con file:/
(almeno, questo è ciò che toString
produce).
java.nio.file.Paths
. Inoltre, assicurati di chiarire che intendi le implementazioni in "URI vs URL". Anway java.net.URL.toString()
produce la stessa cosa su Unix, come deve. Mostra solo un "/" che è molto sbagliato (vedi schema URI file ). Immagino che questo sia in Java per motivi, un uso migliore java.net.URI
. Genera correttamente "file: // [host] /" su una chiamata a .toString()
.
new URL("file:///your/file/here")
/your/file/here
è un percorso assoluto per un file su Unix / Linux. Su Windows sarebbe diverso penso.
new URL("file:my.properties");
File myFile=new File("/tmp/myfile");
URL myUrl = myFile.toURI().toURL();
dai un'occhiata qui per la sintassi completa: http://en.wikipedia.org/wiki/File_URI_scheme
per sistemi unix-like sarà come ha detto @Alex file:///your/file/here
mentre per sistemi Windows sarebbefile:///c|/path/to/file
File.toURI().toURL()
è la strada da percorrere
.properties
file.
java file url
, il che nel mio caso significa che stavo cercando il formato di un file://
URL, in Java, da utilizzare in un .properties
file o da digitare manualmente, ecc.
file://
è purtroppo necessario. Essere dipendenti dal sistema non è un problema così grande poiché è una proprietà mutabile.
Puoi anche usare
[AnyClass].class.getResource(filePath)
jar:file:/home/user/a/b/c/foo.jar!/com/example/stuff/config.txt
.