java调用不在同一目录下的bat

原创 2015年11月19日 18:51:23

描述场景:Java Web项目在E:\eclipse j2ee工作空间下,而需要调用的批处理文件bat在C:\upload下,也就是跨盘符调用,代码如下:

第一种方法是在Java文件中进行盘符切换:

import java.io.File;
import java.io.IOException;

public class batTest {
	public static void main(String[] args) throws InterruptedException{
		System.out.println("hehehehhe");
		
		//方案一:
		Runtime rt = Runtime.getRuntime(); 
		Process ps = null; 
		try {
		   ps = rt.exec("cmd.exe /C start  apkpichuli.bat",null,new File("C:\\upload"));// 加上/b就没有黑框 http://www.jb51.net/article/37367.htm
		} catch (IOException e1) {
		   e1.printStackTrace();
		} 
		ps.waitFor(); 
		int i = ps.exitValue(); 
		if (i == 0) { 
		  System.out.println("执行完成.") ; 
		} else { 
		  System.out.println("执行失败.") ;
		}
		
		//方案二:
			try {
				Runtime.getRuntime().exec("cmd.exe /C start  apkpichuli.bat",null,new File("C:\\upload"));
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		
		
	}
}

网上也有很多调用,但需要保证web项目目录和调用目录在同一文件夹下,否则不能调用成功,网友代码如下:

import java.io.IOException;  
import java.io.InputStream;  

	public class InvokeBat2 {  
	    public void runbat(String batName) {  
	        String cmd = "cmd /c start C:\\upload\\"+ batName + ".bat";// pass  
	        try {  
	            Process ps = Runtime.getRuntime().exec(cmd);  
	            ps.waitFor();  
	        } catch (IOException ioe) {  
	            ioe.printStackTrace();  
	        }  
	        catch (InterruptedException e) {  
	            // TODO Auto-generated catch block  
	            e.printStackTrace();  
	        }  
	        System.out.println("child thread done");  
	    }  
	  
	    public static void main(String[] args) {  
	        InvokeBat2 test1 = new InvokeBat2();  
	        test1.runbat("apkpichuli");  
	        System.out.println("main thread");  
	    }  
	}

第二种方法是在bat文件中进行盘符切换,代码如下:


通过上述两种方法就阔以在任意地方对bat文件进行调用喽,搞了一下午,跑完步回来就搞定了,哇哈哈得意

Latex设置图片等资源文件和.bib 文件以及输出文件与 .tex文件不在同一目录

latex 设置图片等资源文件和.bib 文件以及输出文件与 .tex文件不在同一目录

nginx的sbin和conf文件不在同一目录怎么装安全狗

问题的本质出在哪? 一般我们用redhat系的如centos的yum,debian系的apt-get安装nginx,一般sbin目录和conf目录是分开的,从而安全狗找不到nginx的目录,我们手动输...

查找与PC不在同一网段的设备

  • 2015年05月06日 15:47
  • 108KB
  • 下载

java递归复制所有指定规则的文件到同一目录下

package com.wyp.stream; import java.io.File; import java.io.FileInputStream; import java.io.FileOut...

BAT之简单java类启动器,通用执行当前目录java主程序

将以下代码保存为文本文件,并命名为【launcher.bat】然后可以将launcher.bat放置到任何包含mian的Java文件目录,可以实现执行实现的特性:1、判断当前目录是否存在java文件、...
  • Weigal
  • Weigal
  • 2016年05月30日 05:06
  • 297

销售成本与收入不在同一会计期间(二)

转自:http://blog.sina.com.cn/s/blog_541b4b4f0100q1s5.html     第一步修改601的过账,或者copy 601出来,作个新的account ...

关于路由器中设置IP与网关不在同一网段方法的问题

关于路由器中设置IP与网关不在同一网段方法的问题 遇到这个情况的时候,在设置路由器的时候看到提示如下: “WAN 网关地址不正确,请输入一个正确的网关地址。” 这里的设置如果填写到电脑上的时...

两表不在同一数据库之间的复制数据

--依靠DBMS_OUTPUT.PUT_LINE导出的语句,再执行导出的语句--SET SERVEROUTPUT ON;DECLARE CURSOR customerCursor IS SELECT ...

关于display:inline-block的元素不在同一水平线

今天在开发一个仿网易云的应用时,在布局上遇到一个特别奇怪的问题。先看布局如下。 因为我是用vue写的,但是忽略其语法,就当是个不同的九宫格布局。 css代码 就粗现了如下的情况,让我百思...

(hdu step 5.1.1)A Bug's Life((ai,bi)表示ai、bi不在同一堆中,有若干对数据,判断是否有bug)

题目:A Bug's LifeTime Limit: 15000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tota...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java调用不在同一目录下的bat
举报原因:
原因补充:

(最多只允许输入30个字)