如题。
我有一个程序,在dos启动Tomcat(监视程序执行情况)的时候,运行正常。但是一旦我让它作为Windows服务自动启动,就不运行了。很奇怪。然而我必须让它最终作为服务自动运行
系统是tomcat6.0,Windowsxp
action里就调用一个方法
public ActionForward dododo(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response){
ShowLocal.show();
return null;
}
ShowLocal.show()就是打开一个本地文件
public class ShowLocal {
public static void show(){
Desktop desktop=Desktop.getDesktop();
File file=new File("c:\Program Files\pion","1.html");
System.out.println("我草!");
if(!file.exists()){
System.out.println("file不存在");
}else{
try {
desktop.open(file);
System.out.println(file.getAbsolutePath());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
System.out.println("我草!");
}
在日志里两个“我草”都能打印。路径输出的也没错。 就是不能打开那个本地文件。。。。
哎。。。但是有那个dos对话框就能成功。。。。 为啥啊。
修改setclasspath.bat中的set _RUNJAVA="%JRE_HOME%\bin\java"为
set _RUNJAVA="%JRE_HOME%\bin\javaw"即可隐藏命令窗口
我的理解是.
1.从startup.bat启动时,内存配置使用是文件catalina.bat的配置.
2.从服务启动时,内存要用tomcat6w.exe来配置.至于配置的值写到哪里,我不知道..
从服务启动和从startup.bat启动应该是没什么区别.你或许尝试重装一个tomcat的服务.
实现不行,重新装个tomcat吧,推荐使用解压版的tomcat,使用bin/service.bat来安装服务.
安装: service.bat install [服务名]
安装: service.bat remove [服务名]
当只有一个tomcat时,[服务名]可不写,当在一台机子安装多个tomcat时,就要写上[服务名].
祝你好运!
解压版安装时注意,要配置好JAVA环境,不要配置CATALINA_HOME,TOMCAT_HOME。
解压版安装后也有个服务,启动服务就行,也可从bin/startup.bat启动。