我Tomcat目录D:/Tomcat 5.0/webapps/hello,但是我不知道用户把Tomcat装哪个盘,可能e:,c:,...
所以我想用Tomcat的环境变量,所以我Tomcat的环境变量为CATALINA_HOME,但是我用java程序怎样得到CATALINA_HOME呢?
我原来得程序是这样的:
...
a.copyFolder("AA/BB","D:/Tomcat 5.0/webapps/hello");
....
得到CATALINA_HOME后我得目录D:/Tomcat 5.0/webapps/hello该改为什么?

解决方案 »

  1.   

    是要得到web应用程序的路径撒,用request.getRealPath("");撒
      

  2.   

    to qiyadeng(把我变成猩猩):
    你说的那个我早试过了,不行的!
    报错如下:
    java.lang.Error: getenv no longer supported, use properties and -D instead: CATALINA_HOME
    at java.lang.System.getenv(System.java:691)
    at demo.Test.main(Test.java:12)
    Exception in thread "main"to  lip009(深蓝忧郁):
    我的是java应用程序,不是jsp页面!
      

  3.   

    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;public class CSDN6 {
    public static void main(String[] args)
    {
    Runtime rt = Runtime.getRuntime();
    try {

    Process p= rt.exec("cmd /c echo \"%CATALINA_HOME%\"");
    BufferedReader in= new BufferedReader(new InputStreamReader(p.getInputStream()));
    String path = in.readLine();
    System.out.print(path);

    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    }
      

  4.   

    或者是System.getenv("CATALINA_HOME")
      

  5.   

    to fishyqd(小鱼儿-屯粮,接分):
    API里说getenv(String name) 
              获得指定的环境变量值;
    可是我试过根本不行,你试下拉!
    下面是我试的程序!
    package demo;public class Test {  public static void main(String[] args) {
      
      System.out.println(System.getenv("CATALINA_HOME"));//这一行在eclipse中是“!”号 
      }
    }报错如下:
    java.lang.Error: getenv no longer supported, use properties and -D instead: CATALINA_HOME
    at java.lang.System.getenv(System.java:691)
    at demo.Test.main(Test.java:12)
    Exception in thread "main" 
      

  6.   


    to fishyqd(小鱼儿-屯粮,接分):
    把下面这行代码解释一下,好吗?Process p= rt.exec("cmd /c echo \"%CATALINA_HOME%\"");("cmd /c echo \"%CATALINA_HOME%\"");括号里面的是啥意思?你选的是exec(String command)这个方法吧?括号里字符串命令解释一下好吗?
      

  7.   

    就是执行windows的命令,得到输出的结果...这个只能用于windows方法不好....在cmd中运行echo %CATALINA_HOME%命令,运行完自动关闭(/c)getenv支持的....楼主用的是JDK???
      

  8.   

    to qiyadeng(把我变成猩猩) :
    我用的jdk是1.4.2_05,它不支持getenv的!你用的是??
      

  9.   

    to qiyadeng(把我变成猩猩) :
    echo命令怎么用?它代码何意思?/c好像只能放在cmd后,我("cmd  echo \"%CATALINA_HOME%\" /c");放就是错的!
      

  10.   

    看来jdk1.4.2不支持!还是新的jdk好,不用写啥程序了!可是这样一来,程序员以后都没的饭吃了!
      

  11.   

    java version "1.5.0_06"
    好象1.4是不可以用这个方法...
    http://www.blogjava.net/wiflish/archive/2006/07/03/56384.html还是用楼上说的方法....但是要注意linux都写上....但是这样跨平台不好....
      

  12.   

    to qiyadeng(把我变成猩猩) :
    1)小鱼写的程序好像只支持windows系统吧?要遇到unix,linux怎么办呢?
    2)解释下echo命令吧,谢谢!
      

  13.   

    to qiyadeng(把我变成猩猩) :
    我用小鱼儿的程序得到path为"D:\Tomcat 5.0"
    我原来得程序D:/Tomcat 5.0/webapps/hello要变为path/webapps/hello,必须把'\'变成'/',可是我用String newpath= path.replace('\','/');可是程序报错得,说('\','/')里面是不合法得!怎么不能这样写呢??那该怎么写?
      

  14.   

    String newpath=path.replace('\\','/');
      

  15.   

    '\'在JAVA里是转义符,需要进行转义
      

  16.   

    to lip009(深蓝忧郁):
    这段程序输出得path为什么是"D:\Tomcat 5.0",不是D:\Tomcat?为什么多了个" "?
    Process p= rt.exec("cmd /c echo \"%CATALINA_HOME%\"");
    BufferedReader in= new BufferedReader(new InputStreamReader(p.getInputStream()));
    String path = in.readLine();
    System.out.print(path);
      

  17.   

    to lip009(深蓝忧郁) :
    你说得空格是我得CATALINA_HOME得变量值吗?我设得变量名为CATALINA_HOME,变量值是D:\Tomcat 5.0,你说得空格指得是??
      

  18.   

    import java.io.*;public class EchoEvn 
    {
    public static void main(String[] args) 
    {
    Runtime runtime = Runtime.getRuntime();
    try{
    Process p=runtime.exec(" cmd /c set");
    BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream())); String cmdString = in.readLine();
                while(cmdString !=null)
    {
    System.out.println(cmdString);
    cmdString = in.readLine();
    }
    }
    catch(Exception e){
    System.out.println("Hello World!");
    }

    }
    }
      

  19.   

    to bashener(恒河般沙) :
    你得是在cmd中输入set命令吧,我运行过你得程序,结果是把所有得系统环境变量全部输出,对吧,可以解释下set设置得到底是什么?是设置所有得系统环境变量吗?