我正在尝试使用 Cygwin 测试将在 Linux 环境中运行的 Java 应用程序的启动脚本。
问题是,当我指定 boothclasspath 或 Classpath 时,我需要使用操作系统特定的路径分隔符“;”对于 Windows,“:”对于 Linux。发生这种情况是因为 Java 仍然是 native Windows 应用程序并使用 native 操作系统路径分隔符 (Cygwin List Path Seperator)
shell 脚本中是否有任何方法可以检测我正在使用的操作系统(或者如果我在 CYGWIN 中运行),并指定正确的路径分隔符。
我正在尝试设置以下内容:
MAVEN_OPTS="-Xbootclasspath/a:test/resources:live/resources"
在 Windows 上,它需要是: MAVEN_OPTS="-Xbootclasspath/a:test/resources;live/resources"
最佳答案
在这里找到答案:Detect OS from a bash script (Using $OSTYPE)
PATHSEP=":"
if [[ $OSTYPE == "cygwin" ]] ; then
PATHSEP=";"
fi
MAVEN_OPTS="-Xbootclasspath/a:test/resources${PATHSEP}live/resources"
关于java - 有没有一种方法可以使用 Cygwin 运行 shell 脚本并对 java 命令使用正确的路径分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/936662/