java调用.bat问题,过来的瞧瞧

xiaochende02 2012-11-26 04:22:57

我写了个批处理,把jacob-1.16-M2-x64.dll和jacob-1.16-M2-x86.dll复制到system32文件夹下

手动运行reg.bat可以复制到system32目录下,用java就不行了,上代码

运行结果,并没有把jacob-1.16-M2-x64.dll和jacob-1.16-M2-x86.dll复制到system32文件夹下问下各位怎么回事
...全文
184 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaochende02 2012-11-27
  • 打赏
  • 举报
回复
引用 9 楼 ExceptionBaby 的回复:
引用 5 楼 xiaochende02 的回复:引用 4 楼 ExceptionBaby 的回复:或者是copy 目录/*.* c:/xxx/xxxx copy *.* "%Systemroot%\System32\" 你这样是copy了你.bat文件所在目录的下的所有文件到 system32下面去了
明白了,谢谢你
xiaochende02 2012-11-27
  • 打赏
  • 举报
回复
引用 10 楼 lvbang_lzt 的回复:
看了别人的回复,你的目录有问题,bat中的当前目录可以用 %cd%,你没有指定从哪个目录复制,而你用java调用和你手动执行时 默认的路径是不一样的,所以,其实是复制了,比如我说这里出现的2个.classpath的文件,这应该是用java运行是默认路径下面的文件,所以你要指定从哪个目录复制就可以了
明白了,谢谢
lzh_me 2012-11-26
  • 打赏
  • 举报
回复
看了别人的回复,你的目录有问题,bat中的当前目录可以用 %cd%,你没有指定从哪个目录复制,而你用java调用和你手动执行时 默认的路径是不一样的,所以,其实是复制了,比如我说这里出现的2个.classpath的文件,这应该是用java运行是默认路径下面的文件,所以你要指定从哪个目录复制就可以了
ExceptionBaby 2012-11-26
  • 打赏
  • 举报
回复
引用 5 楼 xiaochende02 的回复:
引用 4 楼 ExceptionBaby 的回复:或者是copy 目录/*.* c:/xxx/xxxx copy *.* "%Systemroot%\System32\"
你这样是copy了你.bat文件所在目录的下的所有文件到 system32下面去了
lzh_me 2012-11-26
  • 打赏
  • 举报
回复
晕哦,有空贴截图没空把代码粘上,还在安装datastage可卡死了....


public static void main(String[] args) {
	    try { 
	    	/**
	    	 * bat内容:
	    	 *           copy d:\test\*.txt  d:\test11
	    	 */
	      //一开始我使用这种方式,复制失败,
	      //但是bat内容为 copy *.* "%Systemroot%\System32"  的时候复制了2个.path文件,目标文件没有复制
	      //String file = "E:/workspace/runbat/test.bat"; 
	      //runbat(file); 
	    	
	    	//使用这个方式复制成功,目录是我自己建的,为了运行完bat关闭窗口我在bat中添加了 exit
	    	//中午路径测试过也是可以的
	    	String bat = "cmd /c start E:/workspace/runbat/test.bat"; 
		    runbat(bat); 
	    } catch (Exception e) { 
	      // TODO Auto-generated catch block 
	      e.printStackTrace(); 
	    } 
	}
	
	public static void runbat(String batName){
		try{
			Process ps = Runtime.getRuntime().exec(batName);
			InputStream is = ps.getInputStream();
			int c;
			while((c = is.read()) != -1){
				System.out.println(c);
			}
			is.close();
			ps.waitFor();
		}catch(Exception e){
			e.printStackTrace();
		}
		
	}

zqfddqr 2012-11-26
  • 打赏
  • 举报
回复
这样的结果貌似是调用了你目前的java执行文件位置的目录
xiaochende02 2012-11-26
  • 打赏
  • 举报
回复
这样不行吗?
xiaochende02 2012-11-26
  • 打赏
  • 举报
回复
引用 4 楼 ExceptionBaby 的回复:
或者是copy 目录/*.* c:/xxx/xxxx
copy *.* "%Systemroot%\System32\"
ExceptionBaby 2012-11-26
  • 打赏
  • 举报
回复
或者是copy 目录/*.* c:/xxx/xxxx
ExceptionBaby 2012-11-26
  • 打赏
  • 举报
回复
我晕, 你的.bat文件里面,没有CD 到你的jacob-1.16-M2-x64.dll 所在的文件夹下。。 你直接掉到.bat文件,他处于你的project目录下,当然就是把你当前project的配置文件拷过去了啊。 你应该在.bat中加上: cd xxxx(jacob-1.16-M2-x64.dll所在目录)
xiaochende02 2012-11-26
  • 打赏
  • 举报
回复
引用 1 楼 huangminyanghe 的回复:
最好文件名不要包含中文
没用,还是一样的结局
huangminyanghe 2012-11-26
  • 打赏
  • 举报
回复
最好文件名不要包含中文

67,514

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧