如何强制Java在Windows上使用Unix文件分隔符?
我有一个简单的代码如何强制Java在Windows上使用Unix文件分隔符?,java,Java,我有一个简单的代码 String staticDir = f.getCanonicalPath() + "/src/main/webapp/static/"; 在Windows上,它将为我返回“C:\Temp/src/main/webapp/static/” 如何强制Java使用“/”而不是“\” 我试过了 System.setProperty("file.separator", "/"); String staticDir = f.getCanonicalPath() + "/src/mai
String staticDir = f.getCanonicalPath() + "/src/main/webapp/static/";
在Windows上,它将为我返回“C:\Temp/src/main/webapp/static/”
如何强制Java使用“/”而不是“\”
我试过了
System.setProperty("file.separator", "/");
String staticDir = f.getCanonicalPath() + "/src/main/webapp/static/";
但这并没有解决我的问题
谢谢大家! 只需使用预期的路径分隔符替换路径分隔符即可:
String dir = f.getCanonicalPath().replace(System.getProperty("file.separator"), "/")
+ "/src/main/webapp/static/";
如果可以的话,支持Java7+的Java.nio.file.Path
。在这里,路径分隔符的概念将消失,直到您调用toString()
。但是很少有库使用这个,并且仍然使用文件
,甚至更糟糕的是,字符串
如果您正在使用的库仍然使用字符串,则可能意味着它们正在
/
上手动拆分。也许是时候告诉他们升级了?在我的例子中,我使用的是库中的一个bug-
这就是为什么所有建议的解决方案都不能解决我的问题。听起来像是XY问题。为什么这对你们来说是个问题?它会破坏什么吗?是的,我有另一个库,它会处理这条路径。该函数只接受“/”分隔符。我认为您应该尝试获取
file:///c:/
URI。您实际上是在尝试创建URI吗?因为如果是,将文件分隔符更改为/
不是正确的方法。这是YUICompressor()-它很长一段时间都没有更新…该错误从2013年起没有修复)