Есть ли способ использовать Cygwin для запуска сценариев оболочки и использовать надлежащие разделители пути для команд Java - PullRequest
2 голосов
/ 02 июня 2009

Я пытаюсь использовать Cygwin для тестирования сценариев запуска для приложения Java, которое будет работать в среде Linux.

Проблема в том, что когда я указываю путь boothclass или Classpath, мне нужно использовать специальные разделители пути ОС ";" для Windows и ":" для Linux. Это происходит потому, что Java по-прежнему является собственным приложением Windows и использует собственный разделитель пути ОС ( Cygwin List Path Seperator )

Есть ли способ в сценарии оболочки определить, на какой ОС я работаю (или, может быть, если я работаю в CYGWIN), и указать правильный разделитель пути.

Я пытаюсь установить следующее:

MAVEN_OPTS="-Xbootclasspath/a:test/resources:live/resources"

В Windows это должно быть: MAVEN_OPTS = "- Xbootclasspath / а: тест / ресурсы; живут / ресурсы"

Ответы [ 2 ]

5 голосов
/ 02 июня 2009

Нашел ответ здесь: Обнаружение ОС из скрипта bash (с использованием $ OSTYPE)

PATHSEP=":" 
if [[ $OSTYPE == "cygwin" ]] ; then
PATHSEP=";" 
fi

MAVEN_OPTS="-Xbootclasspath/a:test/resources${PATHSEP}live/resources"
4 голосов
/ 02 июня 2009

Вы можете использовать uname(1), чтобы проверить, работает ли Cygwin, например ::100100

if uname | grep -iq cygwin; then
    # use ; for path separator
else
    # use : for path separator
fi
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...