我写了个编辑器,现在我要调用 java JDK 下面的java.exe和javac.exe文件,来编译和运行我编辑好的文件。
可是现在遇到一个问题,javac命令 能够直接 用 "javac.exe C:\\try.java"
但是java.exe好像不行,由于编译出来的文件时try.class  ,而java运行命令要用"java.exe C:\\try",这时会出现找不到文件的情况。
请问如果我要用java命令执行C:\\try.class,应该怎么写啊?
顺便问一下,如果我的文件路径有空格,该怎么处理?
比如 "javac.exe C:\\my text\\try.java",这条命令无法运行,该怎么改?有谁知道怎么改么?本人不胜感激!

解决方案 »

  1.   

    java -cp c: try呢?有空格加引号
      

  2.   

    少打了个反斜杠………………
    java -cp c:\ try
      

  3.   

     回2楼  java -cp c:\\try  不行有空格加引号好像不行。比如我想运行 C:\Documents and Settings\try.java
    用 exec("javac"+ " "+ "C:\\Documents"+ " "+ "and"+ " "+ "Settings\\text.java")不能运行
      

  4.   

    我是在程序中调用exe文件,不是在DOS下运行javac和java
      

  5.   

    ………………
    加引号不是这么加的………………dos下这样javac.exe "C:\my text\try.java"
    字符串就是"javac.exe \"C:\\my text\\try.java\""
      

  6.   

       恩,有空格的解决了。那第一个问题java.exe运行文件怎么办呢?
      

  7.   

    比如说这个就是
    java.exe -cp "C:\my text" try
    字符串就是"java.exe -cp \"C:\\my text\" try"
      

  8.   

    我运行  C:\根目录下的try.class用下面的语句不行:
    exec("java.exe -cp \"C:\\\" try")
      

  9.   

    不行指的是什么?你这样运行肯定是不会跳出cmd窗口来显示东西的
      

  10.   

    我用的下面的语句。我运行把运行以后获取到的输入输出流都输出在另外一个编辑框中了。
    Runtime run = Runtime.getRuntime();  
    Process p = run.exec("java.exe -cp \"C:\\\" try");
      

  11.   

    用您给的方法好像不行,我在cmd窗口中运行程序以后,运行到
    Process p = run.exec("java.exe -cp \"C:\\\" try"); 
    时会在cmd窗口输出java.exe的帮助信息。应该怎么改呢,非常感谢您!
      

  12.   

    恩?我测试下来毫无问题啊………………
    我也是在cmd里测试的……import java.io.BufferedReader;
    import java.io.InputStreamReader;public class test {
    public static void main(String args[]) throws Exception {
    Runtime.getRuntime().exec("javac \"C:\\my test\\Sort.java\"");
    Process p = Runtime.getRuntime().exec("java -cp \"C:\\my test\" Sort");
    BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
    String next;
    while ((next = br.readLine()) != null) {
    System.out.println(next);
    }
    br.close();
    p.destroy();
    }
    }我是这样一个代码,C:\my test\Sort.java是一个我自己写的排序小程序,执行结果我输出在一个文本里,如下
    [-251918451, -392604201, 865205594, -1201009064, -1227039789, 1424678733, -2030454820, 384284945, 1820674383, 1210336436, -856217544, -1185717825, 836652580, -1031831831, 1527469589, -492164693, 1955597521, -90859821, 2118184106, -471902599, 26372843, 746057743, 1764776596, 1470519142, -845388020, -851371569, -1903846678, -1769907504, -950117877, -1738061313, 619772814, -471517189, -863856787, -199694680, 1714255045, 185315601, -1439489766, 193839513, -228825590, 68768106, 1385849427, 800975427, 1956629534, -926127090, -1111480861, 714684901, 1658405987, 2134834807, 1417886612, 887684584, 973435242, 1503493018, 193167588, -843619189, -2146396982, 122733352, 819413240, 1370394562, -998608333, -415643376, 1302470609, -1952746917, -806563902, -1484672695, -1152187203, -1688282269, -1052170346, -26647603, -1095649265, 811160519, 1642552994, 1152376040, 675031058, -972770755, -66546492, 366394802, -589395654, 255363428, 1126064663, -1727995687, -217004644, 616879146, -961014396, -1633749085, -1575555169, 551584877, 736938143, 2145022770, 1925819379, 949999588, 1328700592, 1424965130, 2116470466, -377448640, 385791246, 464062928, 221866022, -1588026482, 1469170355, 1061238100]
    [-2146396982, -2030454820, -1952746917, -1903846678, -1769907504, -1738061313, -1727995687, -1688282269, -1633749085, -1588026482, -1575555169, -1484672695, -1439489766, -1227039789, -1201009064, -1185717825, -1152187203, -1111480861, -1095649265, -1052170346, -1031831831, -998608333, -972770755, -961014396, -950117877, -926127090, -863856787, -856217544, -851371569, -845388020, -843619189, -806563902, -589395654, -492164693, -471902599, -471517189, -415643376, -392604201, -377448640, -251918451, -228825590, -217004644, -199694680, -90859821, -66546492, -26647603, 26372843, 68768106, 122733352, 185315601, 193167588, 193839513, 221866022, 255363428, 366394802, 384284945, 385791246, 464062928, 551584877, 616879146, 619772814, 675031058, 714684901, 736938143, 746057743, 800975427, 811160519, 819413240, 836652580, 865205594, 887684584, 949999588, 973435242, 1061238100, 1126064663, 1152376040, 1210336436, 1302470609, 1328700592, 1370394562, 1385849427, 1417886612, 1424678733, 1424965130, 1469170355, 1470519142, 1503493018, 1527469589, 1642552994, 1658405987, 1714255045, 1764776596, 1820674383, 1925819379, 1955597521, 1956629534, 2116470466, 2118184106, 2134834807, 2145022770]
      

  13.   

    就是这句 Process p = run.exec("java.exe -cp \"C:\\\" try"); 
    改成Process p = run.exec("java.exe -cp C:\\ try");