zoukankan      html  css  js  c++  java
  • Java工程路径及相对路径(转载)

     3. 新建文件,默认位于工程目录
    new File("xxx.txt").getAbsolutePath();
    例如输出,D:workspacesworkspace1myProject
    如果使用ClassName.class.getResource("name.config")的结果作为File对象的参数,则会报错:

    java.io.FileNotFoundException: file:D:workspacesworkspace1myProjectincomhutulog4j ame.config (文件名、目录名或卷标语法不正确。)
    at java.io.FileInputStream.open(Native Method)

     
     4. 配置文件路径
    ApplicationContext context = new ClassPathXmlApplicationContext("Config.xml");
    .xml, .properties等,默认还是从“工程目录”去找的
    1). 倒是也可以用绝对路径,真心不推荐啊,太不优雅了;
    2). 或者,将log4j文件置于bin/目录下:
         a). 代码中,PropertyConfigurator.configure("bin/log4j.properties");
         b). 代码中,PropertyConfigurator.configure(ClassLoader.getSystemResource("log4j.properties"));
         c). 注意,必须位于bin直接目录下,不可位于bin更深层的目录当中。可是这究竟是为神马捏?
     5. 查询某类的.class文件所在目录
    Main.class.getResource(“”);
    例如输出,file:/D:/workspaces/workspace1/myProject/bin/com/hutu/log4j/
    注意,查询包上级路径,只需将参数改作“/”
     6. 查询thread上下文所在目录
    Thread.currentThread().getContextClassLoader().getResource("");
    例如输出,D:workspacesworkspace1myProjectin
     7. 查询某类的classloader所在目录
    Main.class.getClassLoader().getResource("");
    例如输出,D:workspacesworkspace1myProjectin
     8. 查询classloader所在目录
    ClassLoader.getSystemResource("");
    例如输出,D:workspacesworkspace1myProjectin

     class.getResourceAsStream("path")、class.getClassLoader().getResourceAsStream("path")区别的分析
    class.getResourceAsStream("path"):如果path仅为一个文件名,则只会在包路径下查找,当path以“/”开头时,则会从classpath的根路径开始查找(SRC根目录)
    class.getClassLoader().getResourceAsStream("path"):无论要查找的资源前面是否有"/"都是从classpath的根路径下查找。

  • 相关阅读:
    采用软件负载均衡器实现web服务器集群
    MS Server 定时备份
    项目失败的若干征兆
    理解SQL Server中的权限体系
    项目管理思考 权利
    基于'sessionStorage'与'userData'的类session存储
    Fit健身APP与HarmonyOS创新合作 打造全新在线健身体验
    #2020征文手机#HarmonyOS轻量级偏好数据库初体验
    鸿蒙HarmonyOS应用开发落地实践,Harmony Go 技术沙龙落地北京
    【2021年1月16日公开课】分布式家庭记账本Demo分享,干货满满!
  • 原文地址:https://www.cnblogs.com/softidea/p/3650869.html
Copyright © 2011-2022 走看看