`

ant运行java程序时, 它不能加载指定properties文件, 怎么处理?

 
阅读更多

 

运行时, 目录结构如下: 

 

    .

    |-- ./build

    |   `-- ./build/TestAntLoadFile.class

    |-- ./build.xml

    |-- ./dist

    |   |-- ./dist/icpFinder.jar

    |   `-- ./dist/icp-finder.properties

    |-- ./icp-finder_bak.properties

    `-- ./src

        `-- ./src/TestAntLoadFile.java

 

 可运如何代码时, 

 

 

 public class TestAntLoadFile {
    private static final String CUSTOMER_CONFIG_FILE_NAME = "icp-finder.properties";
    
    public static void main(String[] args) {
        InputStream custumerConfigIn = TestAntLoadFile.class.
                getClassLoader().getResourceAsStream(CUSTOMER_CONFIG_FILE_NAME);
        
        System.out.println("custumerConfigIn: " + custumerConfigIn);
    }

 }

 

build.xml中核心配置如下: 

 

	<path id="run.classpath">
	    <fileset dir = "${dist.dir}" >
   	        <include name="**/*.jar"/>
   	        <include name="**/*.properties"/>
   	        <include name="./icp-finder.properties"/>
	    </fileset>
	</path>

    <target name="run" depends="jar">
        <java fork="true" classname="TestAntLoadFile">
            <classpath>
                <path refid="run.classpath"/>
            </classpath>
            
        </java>     
    </target>
 

 

 

 

 

 显示结果:custumerConfigIn: null。 

 

 这是为什么? 我知道是ant脚本里写的可能有问题。 同样的代码在Eclipse中运行时显示是没问题的。 

 

实验代码见附件。 

 

0
2
分享到:
评论
1 楼 rmn190 2011-08-01  
解决了,

把run.classpath的定义改成如下


	<path id="run.classpath">
	    <fileset dir = "${dist.dir}" >
   	        <include name="**/*.jar"/>
	    </fileset>
	    	    
	    <pathelement path="${dist.dir}" />
	    
	    <!--
	    <dirset dir="${dist.dir}" />
	    <pathelement path="${dist.dir}" />
	    -->
	</path>



用<pathelement path="${dist.dir}" />或<dirset dir="${dist.dir}" />都行的。

见http://stackoverflow.com/questions/6854952/properties-files-not-found-running-java-through-ant/6856038#6856038中的回答。

相关推荐

    使用Ant打包 来调用properties 文件

    这样,编译时Java虚拟机(JVM)就能接收到这些环境变量,使得代码能够在运行时动态获取配置信息。 除了直接在任务中使用属性,我们还可以在Ant的条件语句(如`&lt;if&gt;`和`&lt;unless&gt;`)中使用这些属性来控制构建流程。...

    ant调用java类

    在 Ant 中调用 Java 类是常见的需求,特别是在执行自定义逻辑或需要运行特定 Java 程序时。本文将详细解释如何使用 Ant 脚本来调用 Java 类,并结合提供的文件内容进行解析。 首先,我们需要了解 Ant 的 `&lt;java&gt;` ...

    JAVA打包成可运行的JAR程序

    JAVA打包成可运行的JAR程序 在 Java 开发中,为了方便程序的部署和分发,通常需要将程序打包成可执行的 JAR 文件。在这个过程中,需要注意几个重要的步骤,包括将依赖的 lib 包和配置文件正确地配置,生成 Class-...

    java ant 详细解析文档

    Ant 是一款用于构建Java应用程序的强大工具,它通过XML脚本来管理构建过程。本文档旨在深入探讨Ant中的`property`和`xmlinclude`特性,帮助读者更好地理解如何利用这些功能简化项目管理和构建流程。 #### 二、...

    java调用ant下载项目文件

    不仅可以通过Java程序来调用Ant执行任务,而且还可以通过自定义的`build.xml`文件来定制各种复杂的构建流程。这种灵活性使得Ant成为许多大型软件项目的首选构建工具之一。同时,结合SVN这样的版本控制工具,可以实现...

    ant 1.8.1源代码

    Apache Ant 1.8.1 是一个非常重要的版本,它是Java世界中著名的自动化构建工具,其源代码提供了深入了解Ant工作原理的机会。Ant以其基于XML的任务和目标定义而闻名,允许开发者编写可重用的构建脚本来编译、打包、...

    ant学习指南 ANT是一个基于Java的自动化脚本引擎

    Ant,全称Apache Ant,是一个基于Java的构建工具,它以XML格式定义构建脚本,使得构建过程在不同平台上保持一致。Ant的核心理念是“Java的Makefile”,它弥补了Java项目中自动化编译、打包、测试等重复工作的问题。...

    使用Ant构建批量压缩js、css文件脚本

    在本场景中,我们将关注如何利用Ant来批量压缩JavaScript(js)和CSS(css)文件,以优化网页加载速度并减小文件体积。这主要涉及到两个知识点:Ant脚本编写和文件压缩技术。 首先,让我们了解一下Ant。Ant是基于...

    Ant编译与执行一个简单的Java项目

    在编译时,`lib`目录下的jar文件需要被添加到类路径中,确保编译和运行时能够正确加载依赖。 总结一下,使用Apache Ant编译和执行Java项目涉及以下步骤: 1. 创建`build.xml`文件,定义构建目标和任务。 2. 在`...

    Ant权威指南

    文件集是Ant处理一组文件的方式,可以指定文件或目录的模式,如`**/*.java`匹配所有子目录下的Java源文件。它们在任务中作为参数使用,如`&lt;javac&gt;`任务可以接受一个文件集来编译指定的源文件。 7. **条件...

    Ant 常见属性标签--property

    本文将深入探讨Ant中的“属性”标签,它是Ant构建文件中不可或缺的部分。 属性在Ant中扮演着变量的角色,允许我们在构建脚本中存储和重用值。属性可以通过`&lt;property&gt;`标签进行定义和赋值。下面我们将详细讲解`...

    ant build 项目实例

    总结来说,“ant build 项目实例”涉及到的关键知识点包括Ant构建文件`build.xml`的结构和任务定义,`build_ODC.properties`中的项目配置管理,以及Ant如何处理构建过程中的各种操作,如编译、测试、打包和依赖管理...

    ant-contrib-1.jar工具

    当用户在执行Ant构建脚本时遇到错误,可能是因为缺少某些特定的任务或者功能,这时候添加ant-contrib库的jar包就能提供缺失的组件,帮助完成编译过程。 标签"ant.jar包"是指Apache Ant的核心库,它包含了执行Ant...

    Ant+Junit+Svn实现自动单元测试

    Ant是一种流行的Java构建工具,它使用XML格式的构建文件(build.xml)来定义一系列的任务,如编译、打包、测试等,以自动化软件开发过程。Ant的主要优点是它的灵活性和可扩展性,可以根据项目的特定需求定制构建流程...

    ANT帮助文档

    Apache Ant 是一个由Java编写的构建工具,它主要用于自动化软件项目的构建、编译、测试和部署过程。这个“ANT帮助文档”是针对Apache Ant 1.9.6版本的官方指南,采用CHM(Compiled HTML Help)格式,这种格式便于...

    StartWithAnt pdf文件与代码

    5. **自定义任务**:如果内置任务不能满足需求,你可以创建自定义任务,这可以通过实现Ant的Task接口或者使用已有的TaskDef任务来加载外部Java类。 6. **属性与引用**:属性是build.xml中的变量,可以设置默认值并...

    Ant安装build手册—LINUX

    其中,`&lt;property&gt;` 元素加载 `build.properties` 中的属性,`&lt;target&gt;` 定义了名为 "build" 的任务,包含 `javac` 和 `jar` 任务,分别用于编译 Java 源代码和打包成 JAR 文件。 通过以上步骤,你可以在 Linux ...

    Ant资料大全

    Apache Ant是一个开源的Java构建工具,它以XML为基础来描述构建过程,是Java开发中的重要组成部分。本资料大全旨在提供全面、深入的Ant知识,帮助开发者理解和掌握这一强大的自动化构建工具。 1. **Ant基本概念** ...

Global site tag (gtag.js) - Google Analytics