为什么我取Tomcat的环境变量取不出来呢!我用的jdk1.5,在搞不出来,老板就要炒我尤鱼了!
有两种取CATALINA_HOME的方法,我都试了,
第一种方法测试的代码如下:
package demo;
public class CSDN6 {
public static void main(String[] args)
{
System.out.println(System.getenv("CATALINA_HOME"));
}
}
程序输出结果为null,程序输出结果为什么是null??我的CATALINA_HOME设置如下C:\Program Files\Apache Software Foundation\Tomcat 5.0第二种方法的测试代码如下:
package demo;
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();
}
}
}
程序输出结果是"%CATALINA_HOME%"!怎么会这样啊!怎样才能取出来啊:C:\Program Files\Apache Software Foundation\Tomcat 5.0
这个问题我已经搞了很久了,在搞不出来,老板就要炒我了!高手帮帮我!感激啊!
有两种取CATALINA_HOME的方法,我都试了,
第一种方法测试的代码如下:
package demo;
public class CSDN6 {
public static void main(String[] args)
{
System.out.println(System.getenv("CATALINA_HOME"));
}
}
程序输出结果为null,程序输出结果为什么是null??我的CATALINA_HOME设置如下C:\Program Files\Apache Software Foundation\Tomcat 5.0第二种方法的测试代码如下:
package demo;
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();
}
}
}
程序输出结果是"%CATALINA_HOME%"!怎么会这样啊!怎样才能取出来啊:C:\Program Files\Apache Software Foundation\Tomcat 5.0
这个问题我已经搞了很久了,在搞不出来,老板就要炒我了!高手帮帮我!感激啊!
解决方案 »
- java中如何使TextArea的大小随Panel的大小变化而变化?
- 如何将字符串转换成类(字符串的名字跟类的名字一样)
- int ic=new String("a").getBytes().length; 为什么得1,java不是unicode的吗,应该得2吧?
- JAVA大虾们一般使用什么编辑环境?
- 为什么不能加IF?解决就给分
- Java处理数据库的事务疑问,麻烦大家:)
- 代码同步的问题?????????????????/
- 请问在jb调试时可以把weblogic放在另一台机器上吗?
- 请问在java多线程中,是只有run(){}内的代码运行在一个新线程下呢?还是这个类中的代码都运行在一个新线程下?
- 怎么获得一个byte[]数组的长度?
- 请教高手,j2sdk1.4在win2003的配置方法,在线等,谢谢!
- 在线等,谁能告诉我一下这个问题的答案
try {
Process p = rt.exec("cmd /c echo %JAVA_HOME%");
BufferedReader in = new BufferedReader(new InputStreamReader(p.
getInputStream()));
String path = in.readLine();
System.out.print(path);
}
catch (IOException ex) {
ex.printStackTrace();
}
项目需要啊!我要在这个目录下拷东西啊!比如我在C:\Program Files\Apache Software Foundation\Tomcat 5.0\webapps\hello\Data目录下执行一些操作,比如拷贝,删除,更新等,这全部是项目的需要!
最初的Java语言有一个访问环境变量的方法System.getenv(),但因为Java宣称的”Write Once,Run AnyWhere”特性,所以在JDK1.0中去掉了这个能够访问平台专有信息的方法。在J2SE5.0中,它又来了,并有所扩充。
大哥,我要的是CATALINA_HOME,你非要给我取JAVA_HOME!我是CATALINA_HOME取不出啊!你把JAVA_HOME变成CATALINA_HOME,就取不出来了!你自己试试好吗?
我设的是CATALINA_HOME,CATALINA_HOME和TOMCAT_HOME这两个环境变量是一回事吗?
to lip009(深蓝忧郁):
我查过jdk1.5的 ,System.out.println(System.getenv("CATALINA_HOME"));应该是可行的,可是我就是出不来啊!
我环境变量设置如下:
变量名:CATALINA_HOME
变量值:C:\Program Files\Apache Software Foundation\Tomcat 5.0;
你觉得这个有错吗??我实在是不知道哪里错了!
我第一种方法取出来就是null!
我的第二种方法取出来是%CATALINA_HOME%,我用的xp,IDE用的是Eclipse3.2.0,会不会和我eclipse有关啊!郁闷呢!
不行啊!测试结果是null,代码给你帖出来!
package demo;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 set CATALINA_HOME"); // 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 ex) {
ex.printStackTrace();
}}
}输出结果是null,是不是我Tomcat有问题?可是我Tomcat可以打开啊,我端口号是8083
我http://localhost:8083/可以打开Tomcat的!
import java.util.Enumeration;
import java.util.Properties;
import java.io.*;
public class A
{
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.println(path);
}
catch (IOException ex) {
ex.printStackTrace();
}
}
}
项目需要啊!我要在这个目录下拷东西啊!比如我在C:\Program Files\Apache Software Foundation\Tomcat 5.0\webapps\hello\Data目录下执行一些操作,比如拷贝,删除,更新等,这全部是项目的需要!
--------------------------干吗取这个!!!!
万一我的tomcat是C:\Program Files\Apache Software Foundation\Tomcat 5.0,但是部署的确实D:\hello怎么办???!!!你的目的是读写某个文件,使之能够被用户通过http://..../hello/abc/123/xyz.dat访问,对吧?request.getRealPath("/abc/123/xyz.dat")就会得到这个服务器路径对应的本地真实路径了
java "-DHELLO_WEB_APP=C:\Program Files\Apache Software Foundation\Tomcat 5.0\webapps\hello" demo.CSDN6eclipse里面在运行的设置arguments里面添加tomcat 在catalina.bat里面添加或者修改set JAVA_OPTION=%JAVA_OPTION%;"-DHELLO_WEB_APP=C:\Program Files\Apache Software Foundation\Tomcat 5.0\webapps\hello"
看看 环境变量里 有没有你要的那个
1.request.getRealPath("/abc/123/xyz.dat");这种方法只能用在jsp页面吧,我做的是GUI啊,用swing写的程序!request.getRealPath("/abc/123/xyz.dat");能用在swing中吗?
2.关于项目的部署问题:
hello是一个web工程,我暂时让用户部署在Tomcat的webapps下,但是这样不灵活,如果能让用户随便把hello拷到任何他想要的位置就好了!
System.getProperty("HELLO_WEB_APP");这句话应该可以在swing中用的吧!
然后在eclipse里面在运行的设置arguments里面添加:
java "-DHELLO_WEB_APP=C:\Program Files\Apache Software Foundation\Tomcat 5.0\webapps\hello" demo.CSDN6就可以了吗?catalina.bat文件要我自己写的吗?
arguments添加"-DHELLO_WEB_APP=C:\Program Files\Apache Software Foundation\Tomcat 5.0\webapps\hello"
要得到项目所在的目录?
在命令行下,是可以的,可能是IDE的问题
这样写,因为有空格,所以jAVA不认,JAVA是跨平台的,而unix下无法使用空格在目录里
你可以设置
CATALINA_HOME=C:\Progra~1\Apache~1\Tomcat~1来试试,我遇到过类似情况,就是这样解决的
项目部署在哪里应该由用户选择的,假如我的web项目的名字叫hello,怎样设置才可以让用户不管把项目部署在哪里都可以用Tomcat打开呢?比如项目部署在d:/hello,或e:/hello,或任何用户想部署的地方!我现在不知道怎么做设置,所以暂时让项目部署在Tomcat的Webapps下了!
package demo;
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();
}
}
}
可以
应该是
Process p= rt.exec("cmd /c echo %CATALINA_HOME%");