2014-02-09 2 views
1
import java.io.*; 

public class chk 
{ 
    String className; 
    String command,command1,command2; 
    public String getMsg(String fileName,File Path1) 
    { 
     String dir; 
     command = "tcc "+fileName; 
     String output = executeCommand(command,Path1); 
     if(output.compareTo("")==0)    
      output = "Compilation Successfull!!"; 
     return output; 
    } 

    private String executeCommand(String command,File Path1) 
    { 
     StringBuffer output = new StringBuffer(); 
     Process p; 
     try 
     { 
      p = Runtime.getRuntime().exec(command,null,Path1); 
      p.waitFor(); 
      BufferedReader reader1 = new BufferedReader(new InputStreamReader(p.getErrorStream())); 
      BufferedReader reader2 = new BufferedReader(new InputStreamReader(p.getInputStream())); 
      String line = "";   
      while ((line = reader1.readLine())!= null) 
      { 
       output.append(line + "\n"); 
      } 
      while ((line = reader2.readLine())!= null) 
      { 
       output.append(line + "\n"); 
      } 
     } catch (Exception e) 
     { 
      e.printStackTrace(); 
     } 
     return output.toString(); 
    } 

    public static void main(String args[])throws IOException 
    { 
     String x; 
     File dir=new File("D:\\test"); 
     chk ob = new chk(); 
     x = ob.getMsg("hello.c",dir); 
     System.out.println("OUtput : "+x); 
    } 
} 

ОШИБКАКомпиляция файл C из класса Java

enter image description here

Я пытаюсь скомпилировать код C из класса Java. Я использую компилятор Turbo C/C++ и также установил его путь, то есть «C:/TC/bin», даже мои программы компилируются, когда я компилирую их непосредственно из командной строки, но когда я пытаюсь скомпилировать его с помощью java-файла, появляется сообщение об ошибке. ПОМОГИТЕ!!

+0

@TonythePony, компилятор которого я должен использовать для работы в окнах? – rick

+0

MinGW является популярным (и бесплатным): http://www.mingw.org/ –

+0

@TonythePony это решит проблему? – rick

ответ

2

Ваш код кажется прекрасным после добавления отсутствующего импорта: import java.io.*; однако, похоже, вы используете очень старый компилятор, созданный для 16-разрядных/DOSWindows, и это, вероятно, причина, по которой он не будет работать для вас.

Попробуйте использовать современный компилятор, например, GCC, а для Windows вы хотите использовать MinGW, который является версией компилятора GCC, созданного для Windows. Я пробовал ваш код с помощью GCC 4.8.2 (MinGW), и он работал нормально.

Другой альтернативой может быть использование компилятора Microsoft Visual C++, который также может запускаться из командной строки (но имейте в виду, что он поддерживает только C89 с некоторыми функциями из более поздних стандартов).

+0

@rick Через проект MinGW, да. – SevenBits

+0

ok Скачивание MinGW ... – rick

+1

@rick Для использования GCC с вашей программой вам нужно будет изменить 'command =" tcc "+ fileName;' на 'command =" gcc "+ fileName;' – jpw

Смежные вопросы