zoukankan      html  css  js  c++  java
  • java依赖的外部文件路径的获取

    在开发阶段一直使用以下方式调试没有问题:

    
    String path = KStream104.class.getResource("/").getFile().toString();
    File database = new File(path + Constants.geoIPFile);
    
    

    但是,打包编译后,放到linux环境下,发现报空指针错误,这里的getResource("/")不再起作用了,并且返回值为null。
    后面采用了下面的方式:

    	static {
    		String path = null;
    		try {
    			URL url = KStream104.class.getResource("/");
                            
                //获取当前用户的绝对路径
    			String userdir = System.getProperty("user.dir");
    			if(url!=null){  // 先判断url
    				path = url.getFile();
    			} 
    			else if(StringUtils.isNotBlank(userdir)){  //再判断userdir
    				path = userdir.endsWith("/") ? userdir : userdir + "/";
    			} else {   //否则为空
    				path = "";
    			}
    			System.out.println("path:" + path);
    			log.info(path + Constants.geoIPFile);
    			File database = new File(path + Constants.geoIPFile);
    			reader = new DatabaseReader.Builder(database).build();
    			
    		} catch (IOException e) {
    			log.error(e.getMessage());
    		}
    	}
    
    
    
  • 相关阅读:
    MSP430程序库<十四>DMA程序库
    MSP430程序库<十三>硬件乘法器使用
    MSP430程序库<十五>Flash控制器
    MSP430程序库<九>数码管显示
    [debug] 调试小结
    SourceInsight Shortcuts
    git commands
    Linux常用命令
    [转] 宏点滴
    Linux 开发
  • 原文地址:https://www.cnblogs.com/30go/p/8891180.html
Copyright © 2011-2022 走看看