我正在编写一个 bash 脚本,它应该执行一些需要特定类路径的 Java 应用程序。
此外,该脚本应该可以在 Ubuntu 和 Windows (Cygwin) 上执行。
问题: Windows 上的分隔符是“;”,而 Ubuntu 上的分隔符是“:”。这导致 Windows 上的 java -cp A.jar;B.jar Main
(在使用 cygwin 时也是如此,因为它使用的是 Windows 的 java)和 java -cp A.jar:B.jar在 Ubuntu 上主要
。
问题:如何在 bash 脚本中检测哪个底层操作系统正在运行/使用哪个 java 类路径分隔符?
最佳答案
一种朴素(但实现起来很快)的方法:首先运行 uname -a
并将其推送到一个变量中。然后检查该输出是否包含“Ubuntu”。
如果是这样,您应该使用“:”作为分隔符;否则 ”;”应该做的。
如果你想为以后的其他平台做好准备;而不是做一个简单的 if/else;您可能想查看 uname -a
在 cygwin 上有什么说法;使用 bash 设置一些 $SEPARATOR_CHAR
变量 switch声明。
关于java - 如何在 Ubuntu 和 Windows (Cygwin) 中使用的 bash 脚本中设置 Java 类路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39996951/