我有一个蚂蚁生成我想要自定义,以便正在构建的文件部署在我的项目文件夹之外。是否有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