Zdarzyło się komuś, że ta sama metoda (na Windowsie) różnie traktuje początkowe "C:" w nazwie pliku. Czasami jako symbol dysku i wtedy działa zgodnie z oczekiwaniami, czasami jako nazwę protokołu i wyrzuca wspomniany w temacie wyjątek ?
U mnie zdarzyło się to w takiej sytuacji:
XMLReader parser=XMLReaderFactory.createXMLReader();
File f=new File(....);
.....
parser.parse(f.getAbsolutePath();
Program uruchamiany z Eclipse działa poprawnie.
Program uruchamiany z wiersza poleceń wyrzuca wyjątek (chociaż nie zawsze, jeśli polecenie wpisane jest w wierszu poleceń TotalCommandera i zatwierdzone przez Shift+Enter, to program znów działa poprawnie, ale pojawia się nowa zagadka: metoda File.getAbsolutePath() zwraca co innego - zwraca "krótką" wersję nazwy katalogu (opuszczone spacje i polskie litery, ograniczenie do 8 znaków itp.))
Pomogła taka zmiana
URL url=new URL("file:"+f.getAbsolutePath());
parser.parse(url.toString());
pozdrawiam