在写代码的过程中遇到了一些问题,特此备忘。
not Mapping
首先,是mapping无法映射,这点是个很很少见的问题。项目的热部署,需要重新刷新, 无法自动加载,所以要去把Tomcat中的项目手动删除,包括两个文件夹
D:\code\apache-tomcat-7\webapps
D:\code\apache-tomcat-7\work\Catalina\localhost环境变量的问题
首先不知道是什么原因,我在系统中配置的环境变量没办法起作用,所以需要在程序中配置临时变量, 按照Js中的原则,越近优先级越高,应该比系统优先级更高,我稍稍实验了一下,可以用,所以没有细究,有兴趣可以自己试下,以下是代码。
String[] env=new String[5];
env[0]="CATALINA_BASE=D:\\code\\apache-tomcat-7";
env[1]="CATALINA_HOME=D:\\code\\apache-tomcat-7";
env[2]="CATALINA_TMPDIR=D:\\code\\apache-tomcat-7\\temp";
env[3]="JRE_HOME=D:\\code\\jdk1.7";
env[4]="CLASSPATH=D:\\code\\apache-tomcat-7-test\\bin";
process = Runtime.getRuntime().exec("cmd /c start D:\\code\\apache-tomcat-7\\bin\\"+name+".bat",env);
3 . environment variable is not defined correctly
当然这不是完全的,更重要的是可能会出现的问题,也就是这个错误:
echo The CATALINA_HOME environment variable is not defined
correctly echo This environment variable is needed to run this program
看看startup.bat中
if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome
echo The CATALINA_HOME environment variable is not defined correctly
echo This environment variable is needed to run this program
goto end
:okHome
set "EXECUTABLE=%CATALINA_HOME%\bin\catalina.bat"
rem Check that target executable exists
if exist "%EXECUTABLE%" goto okExec
echo Cannot find "%EXECUTABLE%"
echo This file is needed to run this program
goto end
找不到cataline路径,这个网上说有几个原因,主要是配置的末尾不能有;和/这个要注意下。
使用流读取控制台输出
//取得命令结果的输出流
/* InputStream fis = process.getInputStream();
//用一个读输出流类去读
BufferedReader br = new BufferedReader(new InputStreamReader(fis));
//逐行读取输出到控制台
while ((line = br.readLine()) != null) {
list.add(line);
} */
还有一个错误,这个主要就是我的路径里有.的原因。以后多加注意啊
- CreateProcess error=2, The system cannot find the file specified