2013-05-06 4 views
0

Следующая строка кода отлично работает с Eclipse,Почему System.getProperty ("user.name"); не работает из командной строки?

Path file = Paths.get(System.getProperty("user.home"),"Desktop","Peppe.txt"); 

Однако, когда я пытаюсь запустить его из терминала, он возвращает мне это сообщение об ошибке

java.nio.file.NoSuchFileException: /root/Desktop/Peppe.txt 

В теории System.getProperty("user.name") должна вернуть платформу Самообслуживание бит корневого пути? не так ли?

+0

Проблема в том, что с Eclipse он отлично работает, но не с терминала с использованием того же компьютера. Java 7 на Ubuntu 11.10 – Rollerball

+1

Похоже, вы пытаетесь запустить приложение в качестве другого пользователя между Eclipse и командной строкой. –

+1

вы запускаете свою программу с помощью имени пользователя root или пользователя? – timactive

ответ

1

Вы работаете код как root и это вполне вероятно, что корень не имеет рабочего стола.

Я бы не предположить, что код не правильно ведет себя, вместо этого я предполагаю, что вы должны понять, что это значит.

+0

Как я могу это сделать? Если я не запускаю его как root, он говорит «Доступ запрещен», поскольку я пытаюсь получить доступ к файлу (хотя я изменил PosixPermissions и добавил OTHERS_WRITE – Rollerball

+0

Фактически сообщение об ошибке «Отказано в доступе» появляется только с определенным файлом, который имеет такие же PosixFilePermissions других, которые фактически работают без какого-либо сообщения об ошибке: O strange – Rollerball

+0

Возможно, в каталоге нет разрешения, или каталог является файлом или файл является каталогом. root может помешать себе получить доступ к чему-либо (даже если он может измените его, если он захочет) Даже «root» не может путать файлы и каталоги (слишком много) –

Смежные вопросы