有没有办法使用Cygwin来运行shell脚本并为java命令使用正确的路径分隔符

Dou*_*kem 2 java unix bash shell cygwin

我正在尝试使用Cygwin来测试将在Linux环境中运行的Java应用程序的启动脚本.

问题是当我指定boothclass路径或类路径时,我需要使用OS特定的路径分隔符";" 用于Windows,":"用于Linux.发生这种情况是因为Java仍然是本机Windows应用程序并使用本机OS路径分隔符(Cygwin List Path Seperator)

有没有在shell脚本中的任何方法来检测我在(或者,如果我在Cygwin中,快到)什么操作系统,并指定正确的路径分隔符.

我正在尝试设置以下内容:

MAVEN_OPTS="-Xbootclasspath/a:test/resources:live/resources"
Run Code Online (Sandbox Code Playgroud)

在Windows上,它需要是:MAVEN_OPTS =" - Xbootclasspath/a:test/resources; live/resources"

Dou*_*kem 5

在这里找到答案:从bash脚本中检测操作系统(使用$ OSTYPE)

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

MAVEN_OPTS="-Xbootclasspath/a:test/resources${PATHSEP}live/resources"
Run Code Online (Sandbox Code Playgroud)