#java
#java
Вопрос:
Я запускаю Java-приложение как службу Windows и использую другое Java-приложение, которое выполняется другим пользователем, для установки каталога, используемого приложением-службой Windows.
Есть ли в Java способ определить права доступа к файлам каталога для другого пользователя? В моем случае я хочу знать права доступа к файлам приложения-службы Windows при запуске отдельного Java-приложения, выполняемого другим пользователем.
Ответ №1:
Такого рода поддержка файловой системы недоступна в стандартной Java, поскольку Java является кроссплатформенной, а безопасность файловой системы сильно отличается на разных платформах (или может вообще не существовать). Тем не менее, планируется добавить эту поддержку в Java 7 (которую мы ждали годами!)
Если вы используете его только в Windows и знаете C / C , вы можете использовать JNI (Java Native Interface), подобный JNA, чтобы подключиться к библиотекам DLL Windows и получить эту информацию. В противном случае вы можете получить пробную или платную версию JNIWrapper, которая работает «из коробки». Я не уверен, что это обеспечивает поддержку безопасности файлов, но это обеспечивает поддержку другой файловой системы — вам нужно просмотреть список функций.
Комментарии:
1. Я не был уверен, верно ли это после поиска в Интернете, но отсутствие информации по этой теме наводит меня на мысль, что Java просто не поддерживает этот тип операций. Надеюсь, Java 7 исправит все.
2. Да, поверьте мне, досадно, что это не поддерживается, и это досадно для тысяч разработчиков! Было много предположений о том, что в конечном итоге попадет в Java 7, а что нет, но теперь кажется довольно уверенным, что это войдет. Смотрите java.sun.com/developer/technicalArticles/javase/nio/#7