2011-11-22 12 views
14

Tôi đang cố gắng sử dụng phương thức Java 7 Files.createSymbolicLink() mới trong Play! Khung và tôi có ngoại lệ sau:Bắt FileSystemException "Một đặc quyền cần thiết không được tổ chức bởi khách hàng" bằng cách sử dụng Files.createSymbolicLink trong Play Framework

RuntimeException occured : java.nio.file.FileSystemException: c:\work\foo\bar: 
A required privilege is not held by the client. 

Đây là lần đầu tiên tôi gặp mô hình cho phép của Java, vì vậy tôi hiểu những gì đang diễn ra, nhưng chưa biết cách khắc phục nó (Tôi muốn cung cấp Bộ điều khiển thêm quyền).

Nếu có ai trả lời ở đây nhanh hơn tôi sẽ tìm được câu trả lời, tôi (và người đọc trong tương lai) sẽ biết ơn.

+1

Với Windows (W7), bạn có thể thêm người dùng vào danh sách những người có thể tạo liên kết tượng trưng (không tắt UAC) bằng chính sách bảo mật. Chạy "secpol.msc" và thay đổi "Cài đặt bảo mật | Chính sách địa phương | Chuyển nhượng quyền người dùng | Tạo liên kết tượng trưng" – mins

Trả lời

9

Đây không phải là vấn đề với quyền truy cập java, nhưng sự cố với quyền của hệ điều hành. Xem FileSystemException.

Các lớp con của FileSystemException là: AccessDeniedException, AtomicMoveNotSupportedException, DirectoryNotEmptyException, FileAlreadyExistsException, FileSystemLoopException, NoSuchFileException, NotDirectoryException, NotLinkException.

Từ AccessDeniedException:

Kiểm tra ngoại lệ ném ra khi một hoạt động hệ thống tập tin bị từ chối, thường do một sự cho phép tập tin hoặc kiểm tra quyền truy cập khác. Ngoại lệ này không liên quan đến AccessControlException hoặc SecurityException do bộ điều khiển truy cập hoặc trình quản lý bảo mật đưa ra khi quyền truy cập vào tệp bị từ chối.

+0

Cảm ơn, hãy xem câu trả lời của tôi. – ripper234

+0

BTW, khi tôi googled cho theo dõi ngăn xếp, không có kết quả nào trên Google. Vì vậy, tôi là người đầu tiên trên internet đã có một vấn đề với nio + UAC, và đăng về nó? – ripper234

+0

@ ripper234 Tôi nghi ngờ nó, nhưng bạn có thể là người đầu tiên trên stackoverflow. –

8

Sau khi xem this answer và ghi nhớ tôi đang chạy trên Windows 7 với UAC, tôi hiểu đây là sự cố Windows.

  1. Không có gì có thể được thực hiện từ bên trong Java để làm điều này biến mất.
  2. Tôi có thể tắt UAC cho Play cụ thể bằng cách nào đó (chạy dưới dạng quản trị viên v.v ...), nhưng câu hỏi không thực sự liên quan đến Play (hoặc quyền của java).

Thật vậy, khi chạy:

runas /noprofile /user:Administrator cmd 
cd c:\myapp 
play run 

tất cả mọi thứ hoạt động tốt.

+0

Tôi đang đối mặt với cùng một vấn đề, cách giải quyết vấn đề này? – user2056563

Các vấn đề liên quan