2012-04-19 9 views
5

Badam projekt, który obejmie mój projekt kompilacji prostych plików Java. Z moich badań postanowiłem nie próbować budować mojego własnego kompilatora, ponieważ zajęłoby to zbyt dużo czasu.Tworzenie programu java do kompilowania plików .java

Czy ktoś wie, jaki był najlepszy kompilator do implementacji w tym projekcie, aby móc skompilować pliki java, które zostały przesłane do programu?

+0

Najbardziej oczywistym rozwiązaniem jest po prostu wywołanie javac z Runtime.exec. Czy istnieje powód, dla którego nie możesz tego zrobić? Więcej informacji o twojej sytuacji pomoże ludziom uzyskać lepsze odpowiedzi. –

+0

Jestem na razie tylko na etapie badawczym projektu i próbuję dowiedzieć się, jakie różne sposoby mogę skompilować pliki .java z programu java. Dzieje się tak, ponieważ zamierzam zbudować narzędzie, które będzie kompilować i oceniać programy java (na razie i później rozszerzyć je na inne języki programowania). Będzie miał dużo więcej funkcji, ale ja po prostu skupię się na znalezieniu najlepszego sposobu na rzeczywistą kompilację programów, aby upewnić się, że nie mają błędów. –

+0

Jeśli planujesz rozszerzyć do różnych języków, to zdecydowanie myślę, że wywołanie interfejsu wiersza poleceń do kompilator jest drogą do zrobienia. W ten sposób Twój program może zostać rozszerzony do pracy z dowolnym językiem, który ma interfejs wiersza poleceń (tj. Prawie wszystkie języki). Jednak jednym z problemów, przed którymi staniesz, jest zapewnienie, że środowisko jest prawidłowo skonfigurowane, a twój program jest zintegrowany z różnymi narzędziami do kompilacji, które mogą być konieczne. (Na przykład twoje narzędzie Java może naprawdę chcieć obsługiwać kompilacje Anta, ponieważ uczniowie mogą chcieć użyć Anta do bardziej złożonych projektów.) –

Odpowiedz

9

Dlaczego nie skorzystać z wbudowanego Java compiler API?

+0

Patrzyłem na javac, czy wiesz, jaką korzyść z używania tego przez javac? –

+0

Zaletą jest to, że nie musisz odradzać nowego procesu dla każdej kompilacji. –

+0

Muszę to zbadać, ale na pierwszy rzut oka wygląda to na dobry sposób na zrobienie tego –

0

To brzmi prawie jak naprawdę trzeba podejście script-y, który robi trzy rzeczy:

  • Compile źródło programu z kompilatora właściwego języka
  • Execute Powstały program produkować jakiś zestaw wyników
  • Porównaj wyniki do oczekiwanych wyników, aby uzyskać ocenę

Ponieważ mówisz, że chcesz zacząć od Javy, ale przenieść się do innych języków, sugerowałbym MRÓWKA. Będzie budował w wielu językach i może ułatwić wykonywanie/klasyfikowanie wynikowego kodu obiektowego.