如何在java中从classpath执行.bat?

时间:2014-03-18 10:37:33

标签: java batch-file

如何从.bat执行classpath?我只能执行.bat特定目录D:\temp\kill-chrome.bat

ClassPath目录

+ src
    + -> .java files ....
+ resource
    + kill-chrome.bat 

我的程序不起作用。

String path = "cmd /c start /resource/kill-chrome.bat";
Runtime rn = Runtime.getRuntime();
try {
    Process pr = rn.exec(path);
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}  

2 个答案:

答案 0 :(得分:0)

我使用file.getAbsolutePath()方法的方法最简单。我不确定哪种方式适合。

String realPath = new File("resource/kill-chrome.bat").getAbsolutePath();
String path = "cmd /c start " + realPath;
Runtime rn = Runtime.getRuntime();
try {
    Process pr = rn.exec(path);
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

runtime.exec(commend),无法直接访问classpath

答案 1 :(得分:0)

我认为在类路径中获取文件路径的正确方法是这样的:

URI uri = YourClass.class.getResource("resource/kill-chrome.bat").toURI();
String path = new File(uri).getAbsolutePath();

这个方法将来自你的工作目录(这可能会有所不同):

new File("resource/kill-chrome.bat").getAbsolutePath();