用Eclipse开发,建立了一个工程,现在想对工程根目录下的文件(作为配置文件使用的,就是一般的txt文件)进行读写,请问如何调用当前工程的相对目录?如果将该工程打包成为jar文件,那么class文件有该如何调用该相对目录呢?请赐教,谢谢!

解决方案 »

  1.   

    只要在eclipse插件环境里面可以只要下面的方法IWorkspaceRoot myWorkspaceRoot = ResourcesPlugin.getWorkspace().getRoot();
    IProject myProject = myWorkspaceRoot.getProject("projectName");
    IFolder myFolder = myProject.getFolder("folderName");
    IFile file=myFolder.getFile("fileName.txt");
    String configFile=file.getLocation().toString();//得到本地file system中的绝对路径或者简单一点
    IWorkspaceRoot myWorkspaceRoot = ResourcesPlugin.getWorkspace().getRoot();
    IFile file=(IFile)myWorkspaceRoot.findMember("/AAA/BBB/ccc.txt");
    //这里是从workspace开始的根
      

  2.   

    哦,不对,我想起来了,你不是在插件开发环境下吧?只是普通的project.如果是这样的话,可以通过getClass().getResource()这样的方法
      

  3.   

    下面的例子是使用ant进行打包的build.xml文件,你可以参考一下
    <?xml version="1.0"?><project name="PROJECT_SYS" basedir="." default="usage"> <property name="name" value="PROJECT_SYS"/>
    <property name="build.dir" value="bin"/>
    <property name="src.dir" value="src"/>
    <property name="lib.dir" value="lib"/>
    <property name="dist.dir" value="dist"/>

    <target name="usage">
    <echo message=""/>
    <echo message="${name} build file"/>
    <echo message="-----------------------------------"/>
    <echo message=""/>
    <echo message="Available targets are:"/>
    <echo message=""/>
    <echo message="build     --> Build the application"/>
    <echo message="jarfile   --> Build the jar file"/>
    <echo message="mockfile  --> Build the mock jar file"/>
    <echo message="junit     --> Run JUnit Task"/>
    <echo message="clean     --> Run Clean Task"/>
    </target> <path id="master-classpath">
    <fileset dir="${lib.dir}">
    <include name="*.jar"/>
    </fileset>
    </path> <target name="build" description="Compile main source tree java files">
    <mkdir dir="${build.dir}"/>
    <copy todir="${build.dir}" preservelastmodified="true">
    <fileset dir="${src.dir}">
    <include name="*.*" />
    </fileset>
    </copy>
    <javac destdir="${build.dir}" source="1.4" target="1.4" debug="true" deprecation="true" optimize="true" failonerror="true">
    <src path="${src.dir}" />
    <classpath refid="master-classpath" />
    </javac>
    </target>

    <target name="jarfile" depends="build" description="Build jar file">
    <jar destfile="${name}.jar">
    <fileset dir="${build.dir}">
    <include name="**/*.*"/>
    <include name="*.xml"/>
    <exclude name="log4j.properties"/>
    <exclude name="mock/**/*.*"/>
    <exclude name="test/**/*.*"/>
    <exclude name="${name}_Mock.xml"/>
    <exclude name="PROJECT_Config.xml"/>
    <exclude name="jdbc.properties"/>
    </fileset>
    </jar>
    </target>

    <target name="mockfile" depends="build" description="Build mock jar file">
    <jar destfile="${name}_Mock.jar">
    <fileset dir="${build.dir}">
    <include name="**/db/*.*"/>
    <include name="**/dao/*.*"/>
    <include name="**/services/*.*"/>
    <include name="mock/**/*.*"/>
    <include name="*Mock.xml"/>
    <include name="log4.properties"/>
    <exclude name="test/**/*.*"/>
    <exclude name="jdbc.properties"/>
    </fileset>
    </jar>
    </target> <target name="clean" description="Clean">
    <delete dir="${build.dir}" />
    <delete>
    <fileset dir=".">
    <include name="TEST*" />
    <include name="*.jar" />
    </fileset>
    </delete>
    </target>


    </project>
      

  4.   

    Edipse 哪里有下啊,给个地址啊~