前两天写了一个程序,就是用C#调用Tomcat\bin\startup.bat,程序如下 System.Diagnostics.Process.Start(@"D:\\tomcat\\bin\startup.bat");
结果系统报错: The CATALINA_HOME environment variable is not defined correctly
This environment variable is needed to run this program但是我用VB j = Shell(D:\tomcat2\bin\startup.bat, 1) 这样子就没有问题,请问为什么? 用C#如何解决?

解决方案 »

  1.   

    startup.bat中是不是用了%1~%9?你需要传递一个参数?
      

  2.   

    System.Diagnostics.Process.Start(@"D:\\tomcat\\bin\startup.bat");多了个 "\"
      

  3.   

       是bin后面少了个"\ " 不是多。
      

  4.   

    方法一:用@,后面的字符不转义,原来是什么就是什么 System.Diagnostics.Process.Start(@"D:\tomcat\bin\startup.bat");
    方法二:用\进行转义,比如说\\这个得到的是\
    System.Diagnostics.Process.Start("D:\tomcat\bin\startup.bat");
      

  5.   

    方法一:用@,后面的字符不转义,原来是什么就是什么 System.Diagnostics.Process.Start(@"D:\tomcat\bin\startup.bat");
    方法二:用\进行转义,比如说\\这个得到的是\
    System.Diagnostics.Process.Start("D:\\tomcat\\bin\\startup.bat");9楼后面那个是错的,不好意思。
      

  6.   

    set CURRENT_DIR=%cd%
    Environment.CurrentDirectory = @"c:\";
    Process.Start(@"c:\test.bat");
      

  7.   

    我主要目的是要能把Tomcat启动起来,这个和"/"没关系吧?
      

  8.   

    System.Diagnostics.Process.Start(@"D:\tomcat\bin\startup.bat");
    &
    System.Diagnostics.Process.Start("D:\\tomcat\\bin\\startup.bat");