System.getProperty("bmsg.home"),你知道如何增加这个属性吗,设置bmsg.home这个系统属性,值=d:\local_deploy,
陈..... 6:40:50 PM
系统属性不是你程序可以控制的
sharme  6:42:00 PM
我这里有一个setenv.bat文件,我想这里面可能设置了,不然公司里面System.getProperty("bmsg.home")一老拿到的是null
18:42:21
文件“setenv.bat”(340B)发送失败!由于对方QQ/TM的安全设置,您的文件传送请求被拒绝。 
    
陈  6:42:30 PM
bmsg.home是什么
sharme  6:42:59 PM
set JAVA_OPTS=%JAVA_OPTS% -Xmx1024m -XX:MaxPermSize=256m -Dfile.encoding=UTF8 -Duser.timezone=GMT -Djava.security.auth.login.config="%CATALINA_HOME%/conf/jaas.config" -Dorg.apache.catalina.loader.WebappClassLoader.ENABLE_CLEAR_REFERENCES=false
set BMSG_HOME=d:/local_deploy/home
set CATALINA_OPTS=%CATALINA_OPTS% -Dbmsg.home=%BMSG_HOME%
陈  6:43:20 PM
System有个方法可以打出所有的key 
你打出来看有没有
sharme  6:43:36 PM
bmsg.home是发在tomcat\bin\setenv.bat,看了,没有bmsg.home
陈  6:43:54 PM
System打不出来自然就拿不到
sharme  6:44:11 PM
所有所setenv.bat这个文件没有在系统中生效
sharme  6:45:32 PM
set BMSG_HOME=/local_deploy/home
set CATALINA_OPTS=%CATALINA_OPTS% -Dbmsg.home=%BMSG_HOME%  这里bin\setenv.bat里面设置BMSG.HOME的代码
sharme  6:48:02 PM
公司代码中System.getProperty("bmsg.home")是拿不到的,所有我改成了需要的绝对路径,程序可以running,但是我们需要通过bmsg.home获取?
以上

解决方案 »

  1.   

    最好是检查下,最后启动Tomcat时的完整命令行是如何的,可以在catalina.bat文件中用 echo 来显示。
    就在启动的这句话之前,类似于:%_EXECJAVA% %JAVA_OPTS% %MEM_OPTS% ...... 这句话之前。
    我本地测试没有任何问题:-Dbmsg.home="ABC  123  XYZ"System.out.println(System.getProperty("bmsg.home"));ABC  123  XYZ
      

  2.   

    能提供以下你写的catalina.bat文件的代码吗?
      

  3.   

    其实就加了这一行:
    set DEBUG_OPTS=%DEBUG_OPTS% -Dbmsg.home="ABC 123 XYZ"
      

  4.   

    意思就是在tomcat\bin 下的catalina.bat中加入
    set DEBUG_OPTS=%DEBUG_OPTS% -Dbmsg.home="ABC 123 XYZ"  这句代码吗?
      然后你是在Eclipse环境还是其他环境中使用System.getProperty("bmsg.home")了?
      

  5.   

    我刚刚在tomcat下bin下创建了catalina.bat文件,并加上了上面的代码,然后执行了,结果在eclipse测试还是拿不到值,怎么回事?求指点