2012-07-11 158 views
2

任何人都可以告诉为什么这个错误,因为如果你把你的工作放在终端中?这是代码。Java中的奇怪错误

我使用此代码来编译文件夹中的所有文件。

import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStreamReader; 
import java.util.ArrayList; 
import java.util.List; 

public class Compiles { 
    public static void main(String[] args) { 
      List<String> compileFileCommand = new ArrayList<String>(); 
      List<String> files = new FileList().getListFile(); 
      List<String> libs = new ListLib().getListFile(); 
      compileFileCommand.add("/opt/java/bin/javac"); 

      for(int i = 0; i < files.size(); i++) 
      { 

       if(files.get(i).equals("Compiles.java")) 
        continue; 

       if(files.get(i).equals("Compile.java")) 
        continue; 

       String fileJar = new CreateFolder().currentData() + "/" + files.get(i) + " -cp lib/"; 

    //      for (int y = 0; y < libs.size(); y++) 
    //      { 
    //       fileJar += libs.get(y) + ":"; 
    //       if(libs.size() -1 == y) 
    //        fileJar += libs.get(y); 
    //      } 

        fileJar += libs.get(0); 



        compileFileCommand.add(fileJar); 

        Process compile_process; 
        try { 
          compile_process = new ProcessBuilder(compileFileCommand) 
              .redirectErrorStream(true).start(); 
        } catch (IOException e) { 
          // TODO Auto-generated catch block 
          e.printStackTrace(); 
          return; 
        } 
        try { 
          compile_process.waitFor(); 
        } catch (InterruptedException e) { 
          // TODO Auto-generated catch block 
          e.printStackTrace(); 
        } 

        BufferedReader reader = new BufferedReader(new InputStreamReader(
            compile_process.getInputStream())); 
        String line = null; 
        try { 
          line = reader.readLine(); 
        } catch (IOException e1) { 
          // TODO Auto-generated catch block 
          e1.printStackTrace(); 
        } 
        while (line != null) { 
          System.out.println(line); 
          try { 
            line = reader.readLine(); 
          } catch (IOException e) { 
            // TODO Auto-generated catch block 
            e.printStackTrace(); 
          } 
        } 
      } 
    } 
} 

的错误如下

javac: invalid flag: temp_11.07.2012/CreateFolder.java -cp lib/gdata-media-1.0.jar 
Usage: javac <options> <source files> 
use -help for a list of possible options 

这些数据的例子,这是什么让

+0

你使用什么命令行编译 – 2012-07-11 09:37:36

+0

javac命令.. – Krasimir 2012-07-11 09:49:10

+0

不,你的程序生成的确切命令行是什么。 – 2012-07-11 14:19:56

回答

1

你尝试把“-cp”选项的文件名前你想编译?

如果不是这样,给我们一个完整的命令行。

+0

我试过了,'-cp'把它放在任何地方,仍然没有工作 – Krasimir 2012-07-11 09:32:12

+0

完整的命令行plz。 – Sabbath 2012-07-11 09:37:41

+0

这个? 的javac:无效的标志:temp_11.07.2012/-cp CreateFolder.java LIB/GDATA媒体-1.0.jar 用法:javac的<源文件> 使用-help为可能的选项 – Krasimir 2012-07-11 09:41:06