Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Ant构建文件中使用Java?_Java_Javascript_Ant - Fatal编程技术网

如何在Ant构建文件中使用Java?

如何在Ant构建文件中使用Java?,java,javascript,ant,Java,Javascript,Ant,我正在尝试编写一个自定义脚本选择器,为此我需要读取每个文件的内容 有没有一种方法可以使用java而不是javascript作为脚本选择器的语言?如果没有,有没有一种听起来很愚蠢的方法来读取文件对象 <scriptselector language="javascript"> f = self.getFile(); println(f); //how to read the File? self.setSelected(true); </scrip

我正在尝试编写一个自定义脚本选择器,为此我需要读取每个文件的内容

有没有一种方法可以使用java而不是javascript作为脚本选择器的语言?如果没有,有没有一种听起来很愚蠢的方法来读取文件对象

<scriptselector language="javascript">
    f = self.getFile();
    println(f);
    //how to read the File?
    self.setSelected(true);
</scriptselector>

f=self.getFile();
println(f);
//如何读取文件?
自选(真);

以下是方法。大致如下:

<scriptselector language="javascript">
    importPackage(java.io);
    importPackage(org.apache.tools.ant.util);

    fileUtils = FileUtils.getFileUtils();
    f = self.getFile();
    println(f);
    if( f.getAbsolutePath().endsWith(".xyz") ){
        fis = new FileInputStream(f.getAbsolutePath());
        isr = new InputStreamReader(fis);
        println('reading it!');
        fileContents = fileUtils.readFully(isr);
        println(fileContents);
        self.setSelected(true);
    }
</scriptselector>

导入包(java.io);
importPackage(org.apache.tools.ant.util);
fileUtils=fileUtils.getFileUtils();
f=self.getFile();
println(f);
if(f.getAbsolutePath().endsWith(“.xyz”)){
fis=新文件输入流(f.getAbsolutePath());
isr=新的输入流阅读器(fis);
println('reading it!');
fileContents=fileUtils.readFully(isr);
println(文件内容);
自选(真);
}

您应该能够使用任何,包括BeanShell(Java)。例如:

<script language="beanshell">
    String file = "foo.txt";
    InputStream is = null;
    try {
        is = new FileInputStream(file);
        // read from stream as required
    } finally {
        if (is != null) {
            try {
            is.close();
            } catch (IOException e) { /* ignore */ }
         }
    }
</script>

String file=“foo.txt”;
InputStream=null;
试一试{
is=新文件输入流(文件);
//根据需要从流中读取
}最后{
如果(is!=null){
试一试{
is.close();
}捕获(IOE异常){/*忽略*/}
}
}

非常感谢。我最初尝试过,但遇到了“无法为beanshell创建javax脚本引擎”错误。请参阅此答案,以添加所需的JAR来构建配置以消除该错误。非常感谢。如果我能在不将它添加到ANT的类路径的情况下让它工作——例如,在我的项目中包含那个jar并在classpathref中引用它——那么这就是一个赢家。