Eclipse下相对目录访问的问题

muyangzuo 2006-02-18 05:42:40
用Eclipse开发,建立了一个工程,现在想对工程根目录下的文件(作为配置文件使用的,就是一般的txt文件)进行读写,请问如何调用当前工程的相对目录?

如果将该工程打包成为jar文件,那么class文件有该如何调用该相对目录呢?

请赐教,谢谢!
...全文
108 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhuhaihua 2006-02-21
  • 打赏
  • 举报
回复
Edipse 哪里有下啊,给个地址啊~
fengmingjie 2006-02-18
  • 打赏
  • 举报
回复
下面的例子是使用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>
jFresH_MaN 2006-02-18
  • 打赏
  • 举报
回复
哦,不对,我想起来了,你不是在插件开发环境下吧?只是普通的project.

如果是这样的话,可以通过getClass().getResource()这样的方法
jFresH_MaN 2006-02-18
  • 打赏
  • 举报
回复
只要在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开始的根

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧