2013-07-08 4 views
3

Я запускаю Cygwin на компьютере под управлением Windows 7 и используя файлы сценариев для запуска программ Java в пакетном режиме. Моя проблема заключается в следующем: я пытаюсь передать путь к Cygwin/Linux в файл через командную строку, а Java преобразует все косые черты в обратную косую черту.Открытие файлов с помощью Java во время работы в Cygwin

Например:

java program $scratchname/path_to_folder/ filename_$i.txt 

В Java, я беру каталог и добавить имя файла, чтобы открыть файл, который обычно работает без проблем до тех пор, как я с помощью командной строки Windows. Однако в Cygwin Java это преобразует в:

home\scratch\path_to_folder 

, которому Cygwin не нравится.

Я не думаю, что это простой вопрос о замене обратных косых косой чертой, потому что Java, по-видимому, по умолчанию использует соглашения о пути Windows, когда я пытаюсь открыть файл. Я предполагаю, что это связано с тем, что Cygwin указывает на установку Windows JVM в Windows.

Как заставить Java использовать соглашения о названии путей Cygwin/Linux в системе Windows?

ответ

5

Java - это программа для Windows и, как таковая, понимает только пути Windows; запуск его из оболочки Cygwin не может изменить это. Вы можете использовать cygpath для преобразования путей взад и вперед.

Ссылка ссылка: https://cygwin.com/cygwin-ug-net/using-effectively.html

Пример случай:

java -jar path/to/your-1.0.jar "$(cygpath -aw /home/YOUR_USER/path/to/file.txt)" 

Варианты:

  • А обеспечивает абсолютный путь
  • ш использует формат для Windows
Смежные вопросы