以前都是window下开发,服务器也大多是window环境,加上取文件路径的问题还是比较少的,今天我的服务放到linux下跑不起来了,看了下,是文件问题。。
修改完之后如下:(问题解决)
package cn.cxf.zjknh.util; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.Properties; public class ConfigUtil { private static ArrayList<File> filelist = new ArrayList<File>(); //配置文件的文件名,配置文件位于$BASE/conf下 /*private static final String DEFAULT_CONF_FILE = "/Params.properties";*/ private static String param1; public static void main(String[] args) { System.out.println(ConfigUtil.getParam1()); } private ConfigUtil() {} public static String getParam1() { Properties prop = new Properties(); String path=""+ConfigUtil.class.getResource("/").getPath(); String rootPath = ""; //windows下 if("\\".equals(File.separator)){ rootPath = path.replace("/", "\\"); } //linux下 if("/".equals(File.separator)){ rootPath = path.replace("\\", "/"); } filelist= getFiles(rootPath); for(File file:filelist){ if(!file.getName().endsWith(".properties")){ continue; } InputStream in = null; try { System.out.println(file.getName()); in = new FileInputStream(file); } catch (FileNotFoundException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } try { prop.load(in); param1 = prop.getProperty("AnnotationInfo"); } catch (IOException e) { e.printStackTrace(); } if(param1!=null){ if(param1.equals("true")){ break; } } } if(param1==null){ param1="false"; } System.out.println(param1); return param1; } /* * 通过递归得到某一路径下所有的目录及其文件 */ private static ArrayList<File> getFiles(String filePath){ File root = new File(filePath); File[] files = root.listFiles(); for(File file:files){ /*String path=file.getPath(); path="/"+path.substring(path.lastIndexOf("\\")+1, path.length());*/ filelist.add(file); } return filelist; } }