Błąd, gdy ścieżka ze spacją

0

Hej mam komende w programie

fsep=  System.getProperty("file.separator");
String workspace1 = JOknoGlowne.class.getProtectionDomain().getCodeSource().getLocation().getPath();
String workspace2  =workspace1.substring(workspace1.indexOf("/")+1, workspace1.lastIndexOf("/"));
workspace= workspace2.replace("/",fsep)+fsep;


FileInputStream fileIn = new FileInputStream(workspace+"util3.utnp");
 ObjectInputStream in = new ObjectInputStream(fileIn);
 jtzd= (JTablice_zdjec) in.readObject();        

która zwraca mi ścieżkę gdzie aktualnie znajduje się klasa główna , jest mi to potrzebne żeby powczytywać dodatkowe rzeczy.

I wszystko jest oke dopóki w ścieżce nie ma spacji, a najśmieszniejesze jest że pod NetBeansem śmiga ok (tzn normalnie widzi spacje w ścieżce i hula wszystko elegancko) to już po uruchomieniu jara pojawia się taki piękny komunikat:




H:\Sciezka Spacja>java -jar Program.jar
Exception in thread "main" java.io.FileNotFoundException: H:\Sciezka%20Spacja\ut
il3.utnp (System nie mo┐e odnalečŠ okreťlonej ťcie┐ki)
        at java.io.FileInputStream.open(Native Method)
        at java.io.FileInputStream.<init>(Unknown Source)
        at java.io.FileInputStream.<init>(Unknown Source)
        at OKNA.JOknoGlowne.konstruktor_helper(JOknoGlowne.java:214)
        at OKNA.JOknoGlowne.<init>(JOknoGlowne.java:161)
        at neurohm_players_bar.Program.main(Program.java
:26)


jak to ogarnąć? skoro spod kompilatora mi tym błędem nie rzuca to nawet nie wiem jak się zabrać za jego usunięcie ......

0

generalnie ta komenda
String workspace1 = JOknoGlowne.class.getProtectionDomain().getCodeSource().getLocation().getPath();

pobiera mi spacje jako %20....

czy jest jakaś możliwość obejścia tego?

1

Spróbuj

String workspace1 = JOknoGlowne.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath();
1

Użyć replaceAll na tym stringu?

0

Dzięki @bogdans , działa

0

.toURI() ?

1 użytkowników online, w tym zalogowanych: 0, gości: 1