zl程序教程

您现在的位置是:首页 >  后端

当前栏目

java依赖的外部文件路径的获取

JAVA文件依赖 获取 路径 外部
2023-09-14 08:57:20 时间

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


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());
		}
	}