Cha*_*nce 3 java filenames cygwin file input
我在Windows 7机器上运行Cygwin,并使用脚本文件批量执行Java程序.我的问题是:我尝试通过命令行将Cygwin/Linux路径传递给文件,Java将所有正斜杠转换为反斜杠.
例如:
java program $scratchname/path_to_folder/ filename_$i.txt
Run Code Online (Sandbox Code Playgroud)
在Java中,我获取目录并添加文件名以打开文件,只要我使用Windows命令行,这通常无任何问题.但是,在Cygwin中,Java将其转换为:
home\scratch\path_to_folder
Run Code Online (Sandbox Code Playgroud)
Cygwin不喜欢哪个.
我不认为这是用正斜杠替换反斜杠的简单问题,因为当我尝试打开文件时,Java似乎默认为Windows路径约定.我猜这是因为Cygwin指向JVM的Windows安装.
如何强制Java在Windows系统上使用Cygwin/Linux路径名约定?
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)"
Run Code Online (Sandbox Code Playgroud)
选项: