2017-07-18 61 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 –

相關問題