我有一個螞蟻生成我想要自定義,以便正在構建的文件部署在我的項目文件夾之外。是否有C:驅動器(或unix等價物)的java系統屬性?
Java系統屬性使我可以訪問$ {user.home},但我需要更高一些的「Machintosh HD/Applications」。
如何將ant指向高於user.home的目錄?
我有一個螞蟻生成我想要自定義,以便正在構建的文件部署在我的項目文件夾之外。是否有C:驅動器(或unix等價物)的java系統屬性?
Java系統屬性使我可以訪問$ {user.home},但我需要更高一些的「Machintosh HD/Applications」。
如何將ant指向高於user.home的目錄?
你可以使用正斜槓(Unix的風格),只是用/
啓動路徑:
<property name="root.dir" location="/"/>
,它會解決的默認驅動器的適合你的操作系統平臺(例如C:\
在Windows和根Unix上的/
)。
<property name="tmp.dir" location="/tmp"/>
將解析爲C:\tmp
或/tmp
,根據您的平臺。
您可以使用getParent()
File f = new File(System.getProperty("user.home"));
f.getParent();//this would return the parent of user home which you need.
您的更新:
You can use [File.listRoots()][2]
你就不能使用${user.home}/../
?
如何定義自己的變量? 見here。
請試試看看File.listRoots()
。結合ANT java task可能會得到期望的結果。
列出可用的文件系統根。
一個特定的Java平臺可能支持 零個或多個分級組織的 文件系統。每個文件系統都有一個 根目錄,該文件系統中的所有其他 文件可以從該目錄到達 。對於 示例,Windows平臺具有用於每個活動驅動器的 的根目錄; UNIX平臺有 單個根目錄,即「/」。
該組可用的文件系統根 的是由各種系統級作爲插入或 噴射可移動介質和 斷開或 物理或虛擬磁盤驅動器卸載這樣 操作的影響。
我認爲他正在嘗試從ANT引用它...所以它是值得提及ANT Java任務以及。 – 2011-04-20 11:56:47
你做了什麼,所以給你+1 :-) – 2011-04-20 11:57:35
另一個有趣的類是FileSystemView。它包含特殊的文件,如桌面項目或「我的電腦」節點操作系統相關的信息:
final javax.swing.filechooser.FileSystemView fileSystemView = javax.swing.filechooser.FileSystemView.getFileSystemView();
File[] roots=fileSystemView.getRoots();
你可以使用這個類來檢查文件是否是一個驅動器節點或軟盤節點,並進一步使用isTraversable你可以檢查例如空的CD-ROM驅動器,即File.listFiles()將失敗的現有根。
這裏是驅動上市代碼:
public static void main(String[] args) {
for(File drive:File.listRoots())
System.out.println(drive.getPath());
}
'Java系統性能給我訪問$ {}的user.home但我需要更高「Machintosh HD /應用程序」是exact.' @約翰,你需要root或user.home的直接上面的目錄?> – 2011-04-20 12:01:05
根將是最好的 – DrANoel 2011-04-20 12:29:51