Пути также важны при использовании путей к классам в сценариях, предназначенных для запуска на обеих платформах: Windows (то есть cygwin) и Linux. Когда я делаю это, я включаю такую функцию для classpath. Команда «cygpath» с параметром «-w» преобразует пути в пути в стиле Windows. Таким образом, в этом примере «/home/user/lib/this.jar» будет преобразован во что-то вроде «C: \ Cygwin \ home \ user \ lib \ this.jar»
#!/bin/bash
function add_java_classpath() {
local LOCAL1=$1
if [ "$OSTYPE" == cygwin ]; then
LOCAL1="$(cygpath -C ANSI -w $LOCAL1)"
fi
if [ -z "$JAVA_CLASSPATH" ]; then
JAVA_CLASSPATH="$LOCAL1"
elif [ "$OSTYPE" != cygwin ]; then
JAVA_CLASSPATH="${JAVA_CLASSPATH}:$LOCAL1"
else
JAVA_CLASSPATH="${JAVA_CLASSPATH};$LOCAL1"
fi
}
add_java_classpath /home/user/lib/this.jar
add_java_classpath /usr/local/lib/that/that.jar
java -cp "${JAVA_CLASSPATH}" package.Main $@