В среде Windows 7 у меня есть Java-код, который запускает скрипт .ksh.Последний принимает путь к каталогу в качестве аргумента и должен создать в нем новую папку.
Код Java:
ProcessBuilder pb = create(this.shell);
pb.command().add(commandLine);
this.shell
установлен на {"cmd.exe", "/C"}
, в то время какcommandLine:
""C:\Users\Andrea\Desktop\Appxxx\..\Scripts\Mod\Launch.ksh" "C:\Users\Andrea\Desktop\Appxxx\dir\"
процесс запускается с:
pb.start()
.ksh должен создать папку " log " в Appxxx \ dir
К сожалению, я получаю следующую ошибку:
mkdir: cannot create directory '/log': No such file or directory
C:\Users\Andrea\Desktop\Appxxx\Scripts\Mod\Launch.ksh[38]: can't create /log/UCS.log: No such file or directory
Даже если путь явно существует.Итак, я попытался запустить ту же команду (без кавычек) непосредственно на терминале Cygwin, и я получил следующий журнал:
mkdir: cannot create directory ‘C:UsersAndreaDesktopAppxxxdir
C:UsersAndreaDesktopAppxxx/log’: No such file or directory
C:/Users/Andrea/Desktop/Appxxx/Scripts/Mod/Launch.ksh[38]: can't create C:UsersAndreaDesktopAppxxxdir C:UsersAndreaDesktopAppxxx/log/UCS.log: No such file or directory
Мне ясно, что что-то удаляет все косые черты, и поэтому путь не может бытьнайденный.В качестве попытки, на терминале cygwin я пытался запустить ту же строку, но менял каждую / с. Это работает! К сожалению, когда я попытался сделать это для commandLine
в Java, это также не удалось.
Подсказки?
PS: мне не разрешеноизменить код Java и Ksh ни.Наконец, приложение гарантированно работает на ОС Linux.
Спасибо всем вам