javac后没有任何提示,并且生成了相应的class文件

解决方案 »

  1.   

    我用的是下面这个办法:Runtime runtime = Runtime.getRuntime();
    runtime.exec("javac E:\\working\\test\\MyCommand.java", null,
        new File("E:\\working\\test"));但问题是:无论编译成功还是失败,在控制台中都没有输出。
    (我的愚见:在编译失败时应该出现异常)另外:java.lang.Compiler是否可以解决这个问题?试了一下,不会用。
      

  2.   

    一定要在程序中编译一个java文件吗?需求是什么?也许可以换个思路
      

  3.   

    "在程序中编译一个java文件"就是需求啊!
      

  4.   

    String result = ""
    Runtime runtime = Runtime.getRuntime();
    Process p = runtime.exec("javac E:\\working\\test\\MyCommand.java", null,
        new File("E:\\working\\test"));DataInputStream dis = new DataInputStream(p.getInputStream());
    byte buf[] = new byte[512];
    int readed = 0;
    while ((readed = dis.read(buf)) > -1)
    {
    result += new String(buf, 0, readed, "GBK");
    }result中为输出,检查一下就可以了
      

  5.   

    类似的方法可以得到java程序运行的结果,但是只对console程序有效,如果你运行的是GUI的就不行了
      

  6.   

    可以使用Sun提供的一个Java编译器的API来实现。它的使用很简单,代码段如下:  …  String[] args = new String[] {“-d”, “/home/mytest/classes”, “Test.java”};  Int status = javac.compile(args);  …  在Sun的JDK 1.2及后续版本中,JDK安装路径的/lib路径下包含了一个tools.jar文件,这个类库包含了一个完整的编译器包。com.sun.tools.javac.Main是编译器的主类入口,如果已经熟悉了javac编译器命令行的使用方法,很容易理解这个类的使用方法。方法compile(String[] p)执行编译动作,参数p是一个String数组,用来存放javac命令的参数选项,编译后的状态返回一个Int值,其对应值参考如下表所示:  表 状态参数与对应值  EXIT_OK 0  EXIT_ERROR 1  EXIT_CMDERR 2  EXIT_SYSERR 3  EXIT_ABNORMAL 4