我在Windows 7机器上运行Cygwin,并使用脚本文件批量执行Java程序。我的问题是:我尝试通过命令行将Cygwin / Linux路径传递给文件,Java将所有正斜杠转换为反斜杠。
例如:
java program $scratchname/path_to_folder/ filename_$i.txt
在Java中,我获取目录并添加文件名以打开文件,只要我使用Windows命令行,这通常无任何问题。但是,在Cygwin中,Java将其转换为:
home\scratch\path_to_folder
Cygwin不喜欢。
我不认为这是用正斜杠替换反斜杠的简单问题,因为当我尝试打开文件时,Java似乎默认为Windows路径约定。我猜这是因为Cygwin指向JVM的Windows安装。
如何强制Java在Windows系统上使用Cygwin / Linux路径名约定?
答案 0 :(得分:5)
Java是一个Windows程序,因此只能理解Windows路径;从Cygwin shell启动它不能改变它。您可以使用cygpath
来回转换路径。
参考链接:https://cygwin.com/cygwin-ug-net/using-effectively.html
示例案例:
java -jar path/to/your-1.0.jar "$(cygpath -aw /home/YOUR_USER/path/to/file.txt)"
选项: