zoukankan      html  css  js  c++  java
  • java相对路径设置

    在java中相对路径的设置是一个比较头痛的问题:配置文件应该写在哪里,"/","./"等各自代表着什么含义,普通的java工程和jsp(servlet)的路径有什么不同,这都是我们特别需要留意的。不然在程序开发中会死得很惨(个人以前深有体会,看似很简单的路径设置,往往要花很多的时间才能搞定)。

     一、Java Project

          1. 普通目录的读取

          

          如果com.taobao.jifeng下的TestPath.java要读取jifeng文件夹下的file.txt文件,路径设置为

          

    [c-sharp] view plaincopy
     
    1. File file = new File("jifeng/file.txt");  

    ps:在这里“jifeng/file.txt”就是从该工程首目录开始的,而“/”开始表示的是绝对路径,“./jifeng/file.txt”的作用和“jifeng/file.txt”的路径设置时相同的

          2. 读取properties文件

          

           从TestProperties.java读取与它同目录下的config.default.properties文件,在java工程中properties的配置文件是被当做跟*.java文件一样使用的。

    [c-sharp] view plaincopy
     
    1. Properties properties = new Properties();   
    2. InputStream is = null;    
    3. is = TestProperties.class.getResourceAsStream("/com/taobao/jifeng/properties/config.default.properties");  
    4. try {  
    5.     properties.load(is);  
    6.     String key = "name";  
    7.     System.out.println(properties.getProperty(key));  
    8.       
    9. catch (IOException e) {  
    10.     // TODO Auto-generated catch block  
    11.     e.printStackTrace();  
    12. }  

    properties文件的具体操作可以参见:java中的Properties文件操作使用举例

    ps:properties文件的读取方式大致是相同的,无论是javaproject,servlet等

     二、可运行的jar文件

    文件位置

     

    [c-sharp] view plaincopy
     
    1. File file = new File("jifeng/file.txt");  

    三、Servlet(JSP),服务器是JBOSS

         1. 页面之间的跳转,加入工程名为WebAndesProject,情况一和情况二相等

    情况一

    [c-sharp] view plaincopy
     
    1. <form action=/"./GetResultJSON/">" +  
    2. "</form>"  

    情况二:

    [c-sharp] view plaincopy
     
    1. "<form action=/"/WebAndesProject/GetResultJSON/">" +  
    2. "</form>"  

    在servlet或jsp中“/”表示的jboss的总目录,"./"表示的是jboss下面该工程的目录,servlet路径可设置

        2. 读取文件

    文件位置:

    servlet的获取其绝对路径的写法:

    [c-sharp] view plaincopy
     
    1. String path = request.getRealPath("config/config.default.properties");  

    四、log4j中路径的设置

    Log4J的位置,在myeclipse开发时

    log4j.properties中的内容:

    [c-sharp] view plaincopy
     
    1. log4j.appender.log = org.apache.log4j.DailyRollingFileAppender  
    2. log4j.appender.log.File = hp/log.log  
    3. log4j.appender.log.Append = true  
    4. log4j.appender.log.Threshold = INFO  
    5. log4j.appender.log.DatePattern='.'yyyy-MM-dd  
    6. log4j.appender.log.layout = org.apache.log4j.PatternLayout  
    7. log4j.appender.log.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t ] %m%n  

    正式部署到jboss时,日志生成会在jboss/bin/hp/log.log目录下

  • 相关阅读:
    解决.net core 3.1 json日期带T的问题
    C# 将指定得时间转换成秒
    WPF Button按钮的按下和抬起分别触发的事件
    WPF Image图片后台绑定图片,不对图片照成占用
    WPF Textbox漂亮的文本控件框封装
    WPF Slider实现可拖动的时间轴
    .net mvc 下显示PDF文件
    .net core 3.1使用命令自动生成MySQL表对应的实体类
    .net core A generic error occurred in GD 已解决
    WPF 模拟Button按钮事件触发
  • 原文地址:https://www.cnblogs.com/renwei/p/4332150.html
Copyright © 2011-2022 走看看