Привет! Я использовал IDE, но теперь мне нужно запустить и скомпилировать из командной строки.
Проблема в том, что у меня есть несколько пакетов, и я попытался найти ответ, но ничего не помогло.
Итак, у меня есть
src/
Support/ (.java files)
Me/ (.java files)
Wrapers/ (.java files)
Знаете ли вы, как скомпилировать все с помощью javac?
Это должно сработать (могут потребоваться дополнительные элементы пути к классам через переключатель командной строки -cp
):
javac Support/*.java Me/*.java Wrapers/*.java
Но если ваш процесс сборки становится более сложным (и он будет!), вам следует изучить возможность использования Apache Ant для автоматизации сборки.
Для таких задач следует использовать такие инструменты сборки, как Maven или Ant .
На начальных этапах, когда проект не очень сложен, вы можете использовать следующую строку для компиляции с соответствующим путем к классам (как предлагает @Michael):
javac Support / *. Java Me / *. java Wrapers / *. java
Если вам действительно нужно просто использовать javac и стандартные команды UNIX, вы можете сделать это:
find src -name \*.java -print0 | xargs -0 javac -d classes
Во многих случаях Ant слишком силен. Просто используйте файл BAT, если вы работаете в Windows, или сценарий оболочки (файл sh), если вы работаете в Linux. Вы можете создать текстовый файл, содержащий все ваши команды javac, и просто запустить этот файл, когда захотите построить.
Например, я использую следующий файл bat для создания одного из своих приложений:
@echo off
echo Building Shazaam...
del classes\com\aepryus\shazaam\*.* /q
del classes\com\aepryus\shazaam\engine\*.* /q
del classes\com\aepryus\shazaam\domain\*.* /q
del classes\com\aepryus\shazaam\persist\*.* /q
del classes\com\aepryus\shazaam\view\*.* /q
del classes\com\aepryus\shazaam\task\*.* /q
del classes\com\aepryus\shazaam\action\*.* /q
del classes\com\aepryus\shazaam\controller\*.* /q
javac src\com\aepryus\shazaam\*.java -classpath \lib\AepUtil.jar;\lib\AepXML.jar;\lib\AepLoom.jar; -d classes
javac src\com\aepryus\shazaam\engine\*.java -classpath \lib\AepUtil.jar;\lib\AepXML.jar;\lib\AepLoom.jar;\lib\Sprout.jar;classes; -d classes
javac src\com\aepryus\shazaam\domain\*.java -classpath \lib\AepUtil.jar;\lib\AepLoom.jar;\lib\Sprout.jar;classes; -d classes
javac src\com\aepryus\shazaam\persist\*.java -classpath \lib\AepUtil.jar;\lib\AepLoom.jar;\lib\Sprout.jar;classes; -d classes
javac src\com\aepryus\shazaam\view\*.java -classpath \lib\Servlet.jar;\lib\AepUtil.jar;\lib\AepXML.jar;\lib\AepLoom.jar;\lib\AepHTML.jar;\lib\Sprout.jar;classes; -d classes
javac src\com\aepryus\shazaam\task\*.java -classpath \lib\AepUtil.jar;\lib\AepLoom.jar;\lib\AepHTML.jar;\lib\Sprout.jar;classes; -d classes
javac src\com\aepryus\shazaam\action\*.java -classpath \lib\Servlet.jar;\lib\AepUtil.jar;\lib\AepLoom.jar;\lib\AepHTML.jar;\lib\Sprout.jar;classes; -d classes
javac src\com\aepryus\shazaam\controller\*.java -classpath \lib\Servlet.jar;\lib\AepUtil.jar;\lib\AepXML.jar;\lib\AepRPC.jar;\lib\AepLoom.jar;\lib\AepHTML.jar;\lib\Sprout.jar;classes; -d classes
cd classes
jar cf ..\war\WEB-INF\lib\Shazaam.jar .
cd..
echo Complete