我用java调用批处理文件.bat,请问怎么把绝对路径改成相对路径。代码如下:
 public void runbat() {
        String cmd = "cmd /c start E:/tr/bin/win32/text.bat";
        
        try {
            Process ps = Runtime.getRuntime().exec(cmd);
            System.out.println(ps.getInputStream());
        } catch(IOException ioe) {
            ioe.printStackTrace();
        }
    }    

解决方案 »

  1.   

    把你的bat文件放在你的java文件同级目录试试看啊...
      

  2.   


    select * from t1;
      

  3.   

    batch的位置放在当前文件所在目录的同一级下面
     java:String cmd = "cmd /c start ../text.bat";
    测试了下好像没有问题!
      

  4.   

    Java文件和batch文件在同一级目录下面的话
    String cmd = "cmd /c start ./text.bat";
      

  5.   

    不用写代码来运行dos了啦 直接点击bat文件就可以运行...
      

  6.   

    如果想要以相对路径执行批文件的话,可以把批文件放到程序的目录下,
    text.bat 放在src目录下,则以下方式
     BerylliumSphere.class.getResource("/text.bat") BerylliumSphere 当前执行runbat函数的类名
      

  7.   

    可以把BAT放到同级目录,然后用File directory = new File("");
    String cmd=directory.getCanonicalPath()+“text.bat”;获取路径
      

  8.   


    import java.io.IOException;public class ReadBat { public static void main(String[] args) {
     String cmd = "cmd /c start c:/TestJava/text.bat";
       
      try {
        Process ps = Runtime.getRuntime().exec(cmd);
        System.out.println(ps.getInputStream());
      } catch(IOException ioe) {
    ioe.printStackTrace();
      } }}
    改成相对路劲就不行了,坐等楼主答案
      

  9.   

    不放在项目src目录下行吗?我试了:
    Process ps = Runtime.getRuntime().exec("cmd cd ./cityIndexTool /c start CsvToIndex.bat");没成功,
    谁能告诉我不放在绝对路径下的方法?????