Sugerowałbym również użycie jakiegoś narzędzia do budowania ( Ant lub Maven , Ant jest już sugerowane i jest łatwiejsze do rozpoczęcia) lub IDE, które obsługuje kompilację (Eclipse używa kompilacji przyrostowej ze strategią uzgadniania, a ty nawet nie musisz pamiętaj o naciśnięciu dowolnego „Kompiluj” ).
Korzystanie z Javac
Jeśli chcesz wypróbować coś dla większego projektu i nie masz w pobliżu żadnych odpowiednich narzędzi do kompilacji, zawsze możesz użyć małej sztuczki, która javacoferuje: nazwy klas do kompilacji można określić w pliku. Po prostu musisz przekazać nazwę pliku do javacz @przedrostkiem.
Jeśli możesz utworzyć listę wszystkich *.javaplików w projekcie, jest to łatwe:
# Linux / MacOS
$ find -name "*.java" > sources.txt
$ javac @sources.txt
:: Windows
> dir /s /B *.java > sources.txt
> javac @sources.txt
- Zaletą jest to, że jest to szybkie i łatwe rozwiązanie.
- Wadą jest to, że musisz ponownie
sources.txtgenerować plik za każdym razem, gdy tworzysz nowe źródło lub zmieniasz nazwę istniejącego pliku, co jest łatwe do zapomnienia (a więc podatne na błędy) i męczące zadanie.
Korzystanie z narzędzia do budowania
Na dłuższą metę lepiej jest używać narzędzia, które zostało zaprojektowane do tworzenia oprogramowania.
Korzystanie z Ant
Jeśli utworzysz prosty build.xmlplik, który opisuje, jak zbudować oprogramowanie:
<project default="compile">
<target name="compile">
<mkdir dir="bin"/>
<javac srcdir="src" destdir="bin"/>
</target>
</project>
możesz skompilować całe oprogramowanie, uruchamiając następujące polecenie:
$ ant
- Zaletą jest to, że używasz standardowego narzędzia do budowania, które można łatwo rozszerzyć.
- Wadą jest to, że musisz pobrać, skonfigurować i nauczyć się dodatkowego narzędzia. Zauważ, że większość IDE (takich jak NetBeans i Eclipse) oferuje świetne wsparcie dla pisania plików kompilacji, więc nie musisz niczego pobierać w tym przypadku.
Korzystanie z Maven
Konfiguracja i praca z Maven nie są takie trywialne, ale nauka tego się opłaca. Oto świetny samouczek, aby rozpocząć projekt w ciągu 5 minut .
- Jego główną zaletą (dla mnie) jest to, że obsługuje również zależności, więc nie będziesz musiał pobierać więcej plików Jar i zarządzać nimi ręcznie, a uznałem, że jest to bardziej przydatne do budowania, pakowania i testowania większych projektów.
- Wadą jest to, że ma stromą krzywą uczenia się, a jeśli wtyczki Maven lubią tłumić błędy :-) Inną rzeczą jest to, że całkiem sporo narzędzi działa również z repozytoriami Maven (jak Sbt for Scala, Ivy for Ant, Graddle for Groovy) .
Korzystanie z IDE
Teraz to, co może zwiększyć produktywność rozwoju. Jest kilka alternatyw open source (jak Eclipse i NetBeans , wolę tę pierwszą), a nawet komercyjne (jak IntelliJ ), które są dość popularne i potężne.
Mogą zarządzać budowaniem projektu w tle, więc nie musisz zajmować się wszystkimi sprawami wiersza poleceń. Jednak zawsze przydaje się, jeśli wiesz, co faktycznie dzieje się w tle, dzięki czemu możesz znaleźć sporadyczne błędy, takie jak plik ClassNotFoundException.
Jedna dodatkowa uwaga
W przypadku większych projektów zawsze zaleca się korzystanie ze środowiska IDE i narzędzia do kompilacji. Pierwsza z nich zwiększa produktywność, podczas gdy druga umożliwia korzystanie z różnych IDE w projekcie (np. Maven może generować deskryptory projektów Eclipse za pomocą prostego mvn eclipse:eclipsepolecenia). Co więcej, posiadanie projektu, który można przetestować / zbudować za pomocą polecenia w jednym wierszu, jest łatwe do wprowadzenia dla nowych kolegów i na przykład do serwera ciągłej integracji. Bułka z masłem :-)