我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该改为什么?
所以我想用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该改为什么?
你说的那个我早试过了,不行的!
报错如下:
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页面!
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();
}
}
}
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"
to fishyqd(小鱼儿-屯粮,接分):
把下面这行代码解释一下,好吗?Process p= rt.exec("cmd /c echo \"%CATALINA_HOME%\"");("cmd /c echo \"%CATALINA_HOME%\"");括号里面的是啥意思?你选的是exec(String command)这个方法吧?括号里字符串命令解释一下好吗?
我用的jdk是1.4.2_05,它不支持getenv的!你用的是??
echo命令怎么用?它代码何意思?/c好像只能放在cmd后,我("cmd echo \"%CATALINA_HOME%\" /c");放就是错的!
好象1.4是不可以用这个方法...
http://www.blogjava.net/wiflish/archive/2006/07/03/56384.html还是用楼上说的方法....但是要注意linux都写上....但是这样跨平台不好....
1)小鱼写的程序好像只支持windows系统吧?要遇到unix,linux怎么办呢?
2)解释下echo命令吧,谢谢!
我用小鱼儿的程序得到path为"D:\Tomcat 5.0"
我原来得程序D:/Tomcat 5.0/webapps/hello要变为path/webapps/hello,必须把'\'变成'/',可是我用String newpath= path.replace('\','/');可是程序报错得,说('\','/')里面是不合法得!怎么不能这样写呢??那该怎么写?
这段程序输出得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);
你说得空格是我得CATALINA_HOME得变量值吗?我设得变量名为CATALINA_HOME,变量值是D:\Tomcat 5.0,你说得空格指得是??
{
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!");
}
}
}
你得是在cmd中输入set命令吧,我运行过你得程序,结果是把所有得系统环境变量全部输出,对吧,可以解释下set设置得到底是什么?是设置所有得系统环境变量吗?