关于Java调用exe,bat

4 篇文章 0 订阅

在写代码的过程中遇到了一些问题,特此备忘。

  1. not Mapping

    首先,是mapping无法映射,这点是个很很少见的问题。项目的热部署,需要重新刷新, 无法自动加载,所以要去把Tomcat中的项目手动删除,包括两个文件夹
    D:\code\apache-tomcat-7\webapps
    D:\code\apache-tomcat-7\work\Catalina\localhost

  2. 环境变量的问题

    首先不知道是什么原因,我在系统中配置的环境变量没办法起作用,所以需要在程序中配置临时变量, 按照Js中的原则,越近优先级越高,应该比系统优先级更高,我稍稍实验了一下,可以用,所以没有细究,有兴趣可以自己试下,以下是代码。

      String[] env=new String[5];
      env[0]="CATALINA_BASE=D:\\code\\apache-tomcat-7";
      env[1]="CATALINA_HOME=D:\\code\\apache-tomcat-7";
      env[2]="CATALINA_TMPDIR=D:\\code\\apache-tomcat-7\\temp";
      env[3]="JRE_HOME=D:\\code\\jdk1.7";
      env[4]="CLASSPATH=D:\\code\\apache-tomcat-7-test\\bin";
      process = Runtime.getRuntime().exec("cmd /c start D:\\code\\apache-tomcat-7\\bin\\"+name+".bat",env); 

3 . environment variable is not defined correctly

 当然这不是完全的,更重要的是可能会出现的问题,也就是这个错误:
echo The CATALINA_HOME environment variable is not defined 

correctly echo This environment variable is needed to run this program

看看startup.bat中

if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome
echo The CATALINA_HOME environment variable is not defined correctly
echo This environment variable is needed to run this program
goto end
:okHome
set "EXECUTABLE=%CATALINA_HOME%\bin\catalina.bat"
rem Check that target executable exists
if exist "%EXECUTABLE%" goto okExec
echo Cannot find "%EXECUTABLE%"
echo This file is needed to run this program
goto end
找不到cataline路径,这个网上说有几个原因,主要是配置的末尾不能有;和/这个要注意下。

使用流读取控制台输出

   //取得命令结果的输出流 
   /* InputStream fis = process.getInputStream(); 
   //用一个读输出流类去读 
   BufferedReader br = new BufferedReader(new InputStreamReader(fis)); 
   //逐行读取输出到控制台 
   while ((line = br.readLine()) != null) { 
         list.add(line);
   } */

还有一个错误,这个主要就是我的路径里有.的原因。以后多加注意啊
  • CreateProcess error=2, The system cannot find the file specified
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值