Originariamente inviato da fermat
se uso lo slash al posto di File.separator non avrei lo stesso problema?
No. Nelle URL si usa sempre e solo lo slash.
Parlo di questa parte di codice

codice:
public String jarPath() throws UnsupportedEncodingException {
   String pathJar = this.getClass().getProtectionDomain().getCodeSource().getLocation().getPath();
   int p = pathJar.lastIndexOf(":");
   int s = pathJar.lastIndexOf(File.separator);
   String path = pathJar.substring(p + 1, s + 1);
   return path;
}
Nella stringa pathJar non avrai mai un backslash, ma File.separator, nei sistemi Windows, è proprio il backslash.

il fatto è che su windows devo fare la conversione di / in \ sennò nn mi funziona.
alla fine non è uguale??
Perchè devi fare la conversione? I percorsi in Java andrebbero sempre scritti usando lo slash, indipendentemente dal sistema operativo che c'è sotto. Sarà la JVM a fare le dovute conversioni dove serve.

Questo percorso
codice:
String path = "/Users/Pippo/"
verrà correttamente accettato dalla JVM su qualunque sistema operativo. Se siamo in ambiente Unix-Like verrà lasciato così com'è, se siamo in ambiente Windows verrà convertito (implicitamente, senza alcun intervento da parte del programmatore) in

codice:
X:\Users\Pippo\
dove X: sarà la lettera dell'unità disco corrente.

Questo per quanto riguarda il trattamento dei file e dei percorsi... cosa diversa se si parla di "visualizzare" il percorso all'utente. In quest'ultimo caso sarà necessaria la conversione (ma è per comodità dell'utente, non certo per una specifica della JVM)

Ciao.