gpt4 book ai didi

java - Ant 和 File.isDirectory()

转载 作者:行者123 更新时间:2023-11-30 10:45:00 24 4
gpt4 key购买 nike

我有一个通过 ant 运行的测试,其中包括一个组件,该组件检查以确保作为参数提供的路径是一个目录,使用:

 File dir = new File(path);
if (!dir.isDirectory()) {
System.err.println("Invalid directory "+path+".");

当通过 ant 任务运行时:

    <java
classname="foo.bar"
classpath="${classpath}"
>
<arg value="-d ${testDir}"/>

其中 testDir 是包含相对路径的位置属性,组件失败并显示“无效目录”消息,反射(reflect)绝对(但正确)路径。

当直接从相同位置运行时,使用 java -cp[yada] foo.bar -d/the/exact/same/absolute/path,没有这样的问题。

我对 ant 很陌生,假设有 some permission I have to grant在这里?

注意:

  • ${testDir} 是一个子目录,也就是说,它不会超出项目树。
  • ${testDir} 的绝对路径及其中的所有组件都是世界可读

最佳答案

如果testDir是相对路径,默认使用系统属性user.dir解析。一个快速的解决方案是在父目录中运行 ant

您还可以添加 dir 以指定 java 任务 运行时的当前目录。

<java
classname="foo.bar"
classpath="${classpath}"
dir="${parentDir}"
fork="true"
>
<arg value="-d ${testDir}"/>

如果您收到以下消息,则需要属性 fork="true":

[java] Working directory ignored when same JVM is used.

关于java - Ant 和 File.isDirectory(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37229500/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com