`
liujunhg
  • 浏览: 28620 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

java中路径的问题

    博客分类:
  • java
阅读更多

关于eclipse项目中的路径问题

在workspace中的路径如下;
test                 -----------------项目名                    
   ——src              -----------------源文件路径
      ——liujun.test   -----------------包名
        ——test.java    -----------------类名
        ——tp.properties  -----------------文件名  

    *注:workspace在d:盘目录下
如:
   Test.java:
   File file= new File(filename);
   filename="tp.properties"   //这样在运行中肯定找不到路径,因为当前的相对路径是相对如项目(test)的
   filename="/tp.properties"  //在前面加上"/"的话,那就表示相对工作文档
    
  那么该如何找到路径呢?

  如果过filename="tp.properties"的话那么其代表的绝对路径就是:d:\workdapce\test\tp.properties,如此那么其其结果肯定是找不到路径
如果 filename="/tp.properties"的话那么其代表的绝对路径是:d:\tp.properties,自然也找不到路径

正确的写法;
    filename="src/liujun/testtp.properties" 或者filename="/workdapce/test/src/liujun/testtp.properties" 当然前者的写法最好(原因很明显)

在这里要说明一下,在整个项目搭建编译后,其目录结构是有所区别的,编译后的class文件会放在其他木星下,当然src中非java文件也会复制过去
下面是J2SE和J2EE的目录结构,而最终运行的是class文件所以你的路径是要有所区别的

  如果是J2SE项目,那么在编译后的的结构目录如下:
test                 -----------------项目名                    
   ——src              -----------------源文件路径
      ——liujun.test   -----------------包名
        ——test.java    -----------------类名
        ——tp.properties  -----------------文件名  

   ——bin              -----------------源文件路径
      ——liujun
           ——test   -
               ——test.java    -----------------类名
               ——tp.properties  -----------------文件名  
     —— ……          ----------------其他文件目录
                     ……
                     ……

  如果是J2EE项目,那么在编译后的的结构目录如下:
test                 -----------------项目名                    
   ——src              -----------------源文件路径
      ——liujun.test   -----------------包名
        ——test.java    -----------------类名
        ——tp.properties  -----------------文件名  

   ——webapps              -----------------源文件路径
     ——WEB-INF
       ——classes
            ——liujun
                ——test   -----------------
                   ——test.java    -----------------类名
                   ——tp.properties  -----------------文件名       
     —— ……          ----------------其他文件目录
                     ……
                     ……

  *注
  以上的目录可能每个人都有所不同这要看你的项目下的.classpath文件里的配置的编译后文件的路径如:
    我的J2EE项目中配置是:
      <classpathentry kind="output" path="webapps/WEB-INF/classes"/>
     
        我的J2SE项目中配置是:
          <classpathentry kind="output" path="bin"/>

这个时候你的filename 的路径及就应该
    J2EE 时:
    filename="webapps/WEB-INF/classes/liujun/testtp.properties" 

       *仔细可能看的出来,其实前面一段就是取决于你的.classpath配置(path="webapps/WEB-INF/classes")


    J2SE 时:
    filename="bin/liujun/testtp.properties"      

 
附:java类中获取路径的方法
Class clazz = this.getClass();   //获得当前类 
 
URLClassLoader loader = (URLClassLoader)clazz.getClassLoader(); //获得类的加载器  
            URI u2= null;
try {
 
  URI uri=loader.getResource( "").toURI();  //获得当前类的根路径如:C:\Program Files\apache-tomcat-6.0.18\webapps\onsafeasiangames\WEB-INF\classes
                 
 u2=uri.resolve( "../../");   //获得当前路径的上两级目录(tomcat时就是项目的目录)
} catch (URISyntaxException e) { 
   e.printStackTrace();
}


1
3
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics