2017-07-18 56 views
0

我有一个简单的代码如何强制Java在Windows上使用Unix文件分隔符?

String staticDir = f.getCanonicalPath() + "/src/main/webapp/static/"; 

在Windows上它将返回给我 “C:\ TEMP/src目录/主/ web应用/静态/”。

如何强制Java使用“/”而不是“\”?

我已经试过

System.setProperty("file.separator", "/"); 
String staticDir = f.getCanonicalPath() + "/src/main/webapp/static/"; 

,但它并没有解决问题,对我来说。

谢谢!

+4

听起来像一个XY问题 –

+0

这是你的问题吗?它会破坏什么? – efekctive

+0

是的,我有另一个lib,它会处理这个路径。该功能只接受“/”分隔符。 –

回答

1

只是与预期一个替代的路径分隔符:

String dir = f.getCanonicalPath().replace(System.getProperty("file.separator"), "/") 
      + "/src/main/webapp/static/"; 

如果可以,赞成的java.nio.file.Path的Java 7 +。在那里,路径分隔符的概念消失,直到您拨打toString()。但很少有这样的库使用这个,仍然使用File甚至更​​糟的是String

如果您使用的库仍以字符串的形式表示,则可能意味着它们正在手动分割/。也许是时候让他们升级了?

+0

这是YUICompressor(https://github.com/yui/yuicompressor) - 它不会更新很长一段时间... –

+0

该错误从2013年不修复)))https://github.com/yui/yuicompressor /问题/ 111 –

相关问题