static{//Will always be non-null 将始终为非空
String userDir = System.getProperty("user.dir");
System.out.println("userDir 当前系统的用户目录====================>>>>>>> " +userDir);//Home first 获取已经存在系统中的地址信息 catalina.home
String home =System.getProperty(Globals.CATALINA_HOME_PROP);
System.out.println("home first ======启动输出为null=======>>>>>>>>> " +home);
File homeFile= null;if (home != null) {
File f= newFile(home);try{
homeFile=f.getCanonicalFile();
}catch(IOException ioe) {
homeFile=f.getAbsoluteFile();
}
}if (homeFile == null) {//First fall-back. See if current directory is a bin directory//in a normal Tomcat install
File bootstrapJar = new File(userDir, "bootstrap.jar");if(bootstrapJar.exists()) {
File f= new File(userDir, "..");try{
homeFile=f.getCanonicalFile();
}catch(IOException ioe) {
homeFile=f.getAbsoluteFile();
}
}
}if (homeFile == null) {//Second fall-back. Use current directory
File f = newFile(userDir);try{
homeFile=f.getCanonicalFile();
}catch(IOException ioe) {
homeFile=f.getAbsoluteFile();
}
}
catalinaHomeFile=homeFile;//设置catalina.home键值中的系统属性,这里设置的是Tomcat在系统中的地址信息
System.setProperty(
Globals.CATALINA_HOME_PROP, catalinaHomeFile.getPath());//Then base
String base =System.getProperty(Globals.CATALINA_BASE_PROP);if (base == null) {
catalinaBaseFile=catalinaHomeFile;
}else{
File baseFile= newFile(base);try{
baseFile=baseFile.getCanonicalFile();
}catch(IOException ioe) {
baseFile=baseFile.getAbsoluteFile();
}
catalinaBaseFile=baseFile;
}
System.setProperty(
Globals.CATALINA_BASE_PROP, catalinaBaseFile.getPath());
}