java - ant getResourceAsStream null 但在 Eclipse 中正常

标签 java ant

多年来我一直在努力解决这个问题,但这里有: 当我在 Eclipse 中使用 getResourceAsStream 运行我的 java 代码时,我有一个文本文件可以正常加载。

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

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

感谢任何帮助,谢谢,Jamesie

最佳答案

我遇到了同样的问题,我花了一段时间才解决。 我还认为问题出在 getResourceAsStream() , 或者来自参数中的相对路径,但是 NO !

比那简单得多:文件不存在。

您可以检查是否需要:转到您用 ant 生成的 .jar 文件,然后解压缩它(使用 7zip、WinRAR 或其他工具..)。您会看到您的 config.properties 文件不存在。

的确,如果刚刚使用<jar />在您的 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 文件中。

关于java - ant getResourceAsStream null 但在 Eclipse 中正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13269908/

相关文章:

java - 线程化 apache cxf 客户端和高频请求的性能

java ant Eclipse 运行报错

java - ANT 等待文件创建

Java 多种声音

java - log4j 配置概述

java - 如何在 Java Mad Libs 程序中使用随机发生器?

java - WEB-INF 在 Java EE Web 应用程序中的用途是什么?

java - EAR 文件和 "WebSphere Enhanced EAR"有什么区别?

BlackBerry - Ant 为更复杂的应用程序构建脚本

Grails ant 任务无法工作 - 无法启动 Grails : java. lang.reflect.InitationTargetException