3 回答

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超5個(gè)贊
在要在兩種平臺(tái)(Windows(即cygwin)和Linux)上運(yùn)行的腳本中使用類路徑時(shí),路徑也很重要。當(dāng)我這樣做時(shí),我為類路徑包括了一個(gè)類似這樣的函數(shù)。帶有'-w'選項(xiàng)的'cygpath'命令將路徑轉(zhuǎn)換為Windows樣式的路徑。因此,在此示例中,“ / home / user / lib / this.jar”將被轉(zhuǎn)換為“ 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 $@

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超6個(gè)贊
視窗:
java -cp file.jar;dir/* my.app.ClassName
Linux:
java -cp file.jar:dir/* my.app.ClassName
提醒:
Windows路徑分隔符為
;
Linux路徑分隔符是
:
在Windows中,如果cp參數(shù)不包含空格,則引號(hào)是可選的
添加回答
舉報(bào)