(Tôi có một vấn đề mà tôi minh họa trong câu hỏi this nhưng không có câu trả lời chính xác. Tôi đã giải quyết vấn đề của mình và cố gắng chỉnh sửa câu hỏi ban đầu để phản ánh điều đó nhưng tôi đoán vì cách SO hiển thị câu hỏi chưa được trả lời mất đà và có không có cách nào để hồi sinh nó. Vì vậy, tôi đăng câu hỏi đúng của mình một lần nữa).Không thể khởi chạy tệp trên mạng bằng Java Desktop?
Tôi có một tập tin đó nằm trong mạng lưới vị trí chia sẻ:
"\\KUROSAVVAS-PC\Users\kuroSAVVAS\Desktop\New Folder\Warsaw Panorama.JPG"
(Các không gian là có chủ đích)
Các mã sau đây:
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();
}
}
}
Prints để bảng điều khiển tồn tại tệp (System.out.println (f.exists());) nhưng ném ngoại lệ này! :
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)
Có ai biết tại sao điều gì đó như thế này có thể xảy ra không? Tôi đã thử mọi thứ từ việc tạo các URI để giải mã chúng sau này ... Không có gì hiệu quả.
Và không cùng một con đường tập tin (ví dụ: có khoảng trống) hoạt động khi tệp cục bộ với máy tính của bạn (tức là trên C :)? Sự cố có liên quan đến hệ thống tệp mạng không? –
Nếu tôi dán "\\\ KUROSAVVAS-PC \\ Users \\ kuroSAVVAS \\ Máy tính để bàn \\ Thư mục mới \ Warsaw Panorama.jpg" vào hộp thoại "chạy" tệp mở ra bình thường. Trong ví dụ này, phần chia sẻ cũng nằm trên đĩa cục bộ của tôi nhưng nói chung nó sẽ hoạt động với bất kỳ vị trí mạng nào. –
(các không gian đã được tự động xóa bỏ trong bình luận trước đó của tôi. Họ đang ở đó ...) Tôi cũng muốn nói rằng tôi đã được xác thực đối với phần chia sẻ –