(Mam problem, który zilustrowałem w pytaniu this, ale nie miałem poprawnych odpowiedzi.) Poprawiłem swój problem i próbowałem edytować początkowe pytanie, aby to odzwierciedlić, ale domyślam się, że z powodu sposobu, w jaki SO wyświetla pytania bez odpowiedzi, nie ma sposobu na ożywienie, więc ponownie zamieszczam poprawne pytanie).Nie można uruchomić pliku w sieci za pomocą Java Desktop?
Mam plik, który znajduje się na wspólnej lokalizacji sieciowej:
"\\KUROSAVVAS-PC\Users\kuroSAVVAS\Desktop\New Folder\Warsaw Panorama.JPG"
(są tam celowo Przestrzenie)
Poniższy kod:
import java.awt.Desktop;
import java.io.File;
import java.io.IOException;
public class Test {
public static void main(String[] args) {
try {
String s = "\\\\KUROSAVVAS-PC\\Users\\kuroSAVVAS\\Desktop\\New Folder\\Warsaw Panorama.jpg";
File f = new File(s);
System.out.println(f.exists());
Desktop.getDesktop().open(f);
} catch (IOException e) {
e.printStackTrace();
}
}
}
wydruków konsola, że plik istnieje (System.out.println (f.exists());), ale rzuca ten wyjątek! :
java.io.IOException: Failed to open file:////KUROSAVVAS-PC/Users/kuroSAVVAS/Desktop/New%20%20%20%20%20Folder/Warsaw%20%20%20%20Panorama.jpg. Error message: The system cannot find the file specified.
at sun.awt.windows.WDesktopPeer.ShellExecute(WDesktopPeer.java:59)
at sun.awt.windows.WDesktopPeer.open(WDesktopPeer.java:36)
at java.awt.Desktop.open(Desktop.java:254)
at Test.main(Test.java:13)
Czy ktoś ma pojęcie, dlaczego coś takiego może się zdarzyć? Próbowałem wszystkiego, od tworzenia identyfikatorów URI po ich dekodowanie ... Nic nie działa.
I robi ścieżkę tego samego pliku (to znaczy ze spacjami) działa, gdy plik jest lokalny dla twojego komputera (tj. na C :)? Czy problem dotyczy sieciowego systemu plików? –
Jeśli wkleję ten plik "\\\\ KUROSAVVAS-PC \\ Users \\ kuroSAVV \ \ Desktop \ \ Nowy folder \ Warsaw Panorama.jpg" w oknie "Uruchom", plik otworzy się normalnie. W tym przykładzie udział również znajduje się na dysku lokalnym, ale ogólnie powinien działać z dowolną lokalizacją sieciową. –
(spacje zostały automatycznie usunięte z poprzedniego komentarza, są tam ...) Chciałem również powiedzieć, że jestem uwierzytelniony w stosunku do udziału –