java - 有没有一种方法可以使用 Cygwin 运行 shell 脚本并对 java 命令使用正确的路径分隔符

标签 java bash unix shell cygwin

我正在尝试使用 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/

相关文章:

c - mmap vs fgetc 以避免缓存未命中

python - 如何在您的服务器上运行 python 脚本?

java - JBOSS AS 7 上的 SSL

java - 使用.getWidth()时无法定位空指针的原因

java - 我的图像在 JLabel 上的正确路径是什么?

Java递归性的误解

bash - 是否可以将错误输出发送到bash中的变量?

linux - 使用 linux bash 解析字符串 - Delphi 代码到 Bash 代码

linux - bash 脚本到一个类轮

unix - Redis-cli 使用EVAL执行代码