2012-05-18 2 views
2

У меня есть такой код:ошибка java.security при создании каталога (Linux)

return (new File(pathA + File.separator + pathB + File.separator)).mkdir(); 

Я считаю, что используется для работы, но сейчас не работает. Приложение работает только в Linux, и мы протестировали его с Mint 9, Ubuntu 10.04, Kubuntu 12.04 и т. Д. Он не создает целевой каталог.

Путь находится внутри каталога с 777 правами доступа.

Трассировка стека не очень полезна. Поскольку трассировка показывает пару вызовов методов java.security, я предполагаю, что это проблема с разрешениями. Но фактическое сообщение об ошибке вообще не полезно (возможно, потому, что обработка исключений в коде нуждается в улучшении).

Каков наилучший способ создания каталогов в Java на Linux?

+6

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

+0

* «Но фактическое сообщение об ошибке вообще не полезно (возможно, потому, что обработка исключений в коде нуждается в улучшении)». * Поэтому улучшите его и скопируйте/вставьте вывод. –

+1

Даже csi не работает без доказательств. Улучшите журналы и принесите их, пожалуйста, – Alfabravo

ответ

2

Проблема заключалась в том, что в пути я создавал более одного уровня каталогов. Раствор был:

return (new File(pathA + File.separator + pathB + File.separator)).mkdirs(); 

Обратите внимание на «s» на mkdirs().

3
  • Извлечь path + File.separator в переменную.
  • Распечатайте его на консоль
  • запустить оболочку в терминале и запускать эту команду, используя ту же учетную запись пользователя, что приложение работает в mkdir <INSERT THE PATH TO THE DIR THAT YOUR APP IS TRYING TO CREATE HERE>

Это должно дать вам основную причину вашего проблема.

Если это не делает ответ очевидным, добавьте все другие доказательства.

+1

Вы правы, что я оставил что-то важное в вопросе. Я нечаянно забыл о том, что существует несколько уровней каталогов. Я исправил это и также ответил решением. – MountainX

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