Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.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
Java ant getResourceAsStream为null,但在Eclipse中正常_Java_Ant - Fatal编程技术网

Java ant getResourceAsStream为null,但在Eclipse中正常

Java ant getResourceAsStream为null,但在Eclipse中正常,java,ant,Java,Ant,多年来,我一直在努力解决这个问题,但我想: 在Eclipse中使用getResourceAsStream运行java代码时,我有一个文本文件可以很好地加载 文本文件与使用它的类位于同一个包目录中。 但是,当我使用ant从命令行运行相同的代码时,getResourceAsStream返回null 我认为它与类路径相关,但我似乎无法通过修改build.xml或目录结构来实现它 感谢您的帮助,Jamesie我也有同样的问题,我花了一段时间才解决。 我还认为问题来自getResourceAsStream

多年来,我一直在努力解决这个问题,但我想: 在Eclipse中使用getResourceAsStream运行java代码时,我有一个文本文件可以很好地加载

文本文件与使用它的类位于同一个包目录中。 但是,当我使用ant从命令行运行相同的代码时,getResourceAsStream返回null

我认为它与类路径相关,但我似乎无法通过修改build.xml或目录结构来实现它


感谢您的帮助,Jamesie我也有同样的问题,我花了一段时间才解决。 我还认为问题来自
getResourceAsStream()
,或者来自参数中的相对路径,但是

比这简单得多:文件不存在

您可以检查是否需要:转到您用ant生成的.jar文件,并将其解压缩(使用7zip、WinRAR或其他..)。您将看到config.properties文件不在那里

实际上,如果只在build.xml文件(ant的输入)中使用
,它将只压缩.java文件! 您还需要使用副本:

<target name="compile">
        <mkdir dir="${classes.dir}"/>
        <javac srcdir="${src.dir}" destdir="${classes.dir}" classpathref="classpath"/>
        <copy todir="${classes.dir}">
            <fileset dir="${res.dir}"
                     includes="**/*.properties,**/*.xml,**/*.png,**/*.jpg" />
            <!-- I advise you to also include .xml .jpg, ... or any file you need that doesn't end with .java--> 
        </copy>
</target>


就这样,您现在可以通过再次解压缩来检查config.properties是否包含在最终的.jar文件中。

请显示您的Ant任务,在编译类时,希望不要将该txt文件移动到compiled classes文件夹ex:
bin\com\xxx\urtext.txt
。这是我的ant目标:这是我的代码(对于testNG数据提供程序):InputStream resourceStream=DataProviderStuff.class.getResourceAsStream(文件名)