Трассировка стека показывает, что код не удался при попытке создать символическую ссылку путем вызова Files.createSymbolicLink () .Чтобы сделать это в Windows 10, вы должны работать с правами администратора или у вас должно быть право создавать символическую ссылку, поэтому истинное решение вашей проблемы - установить соответствующий Контроль учетных записей (UAC) .Это имеет место, даже если вы создали файл или каталог, в который вы хотите добавить символическую ссылку.
Если вы откроете окно Командная строка , создайте каталог, а затем попробуйте добавитьсимволическая ссылка завершится с ошибкой «У вас недостаточно прав для выполнения этой операции» , но если вы сделаете то же самое при выборе Запуск от имени администратора перед открытием Командная строка Окно работает нормально:
Те же принципы применяются при создании символическогоссылка в приложении Java на Windows 10, и снова правильное решение - установить UAC соответствующим образом.Однако существует простое обходное решение: точно так же, как вы можете открыть окно Командная строка от имени администратора, вы также можете запустить NetBeans от имени администратора:
Как только вы это сделаете, java.lang.InternalError должен исчезнуть.
Вы можете запустить тривиальное приложение Java ниже, чтобы подтвердить, что права администратора необходимы, когдасоздание символической ссылки в Windows 10. Сбой приложения с FileSystemException ( "Требуемая привилегия не поддерживается клиентом." ) при вызове Files.createSymbolicLink () из NetBeans, если он запускается нормально, но работает нормально, когда NetBeans имеет значение Запуск от имени администратора .
public class SymLink {
public static void main(String... args) throws IOException {
String originName = "c:\\ThisIsJunk";
String targetName = originName + "SymLnk";
Path origin = Files.createDirectories(Paths.get(originName));
Path target = Paths.get(targetName);
try {
Files.delete(target);
} catch (NoSuchFileException e) {
}
try {
Path symLink = Files.createSymbolicLink(target, origin);
System.out.println("Symbolic link created: " + symLink.toString());
} catch (AccessDeniedException e) {
e.printStackTrace();
}
}
}