Компиляция нескольких пакетов с использованием командной строки в Java - PullRequest
11 голосов
/ 18 августа 2010

Привет! Я использовал IDE, но теперь мне нужно запустить и скомпилировать из командной строки.

Проблема в том, что у меня несколько пакетов, и я пытался найти ответ, но ничего не помогло.

Итак, у меня есть

src/
  Support/ (.java files)
  Me/ (.java files) 
  Wrapers/ (.java files)  

Вы знаете, как скомпилировать все с помощью javac?

Ответы [ 6 ]

9 голосов
/ 18 августа 2010

Для таких задач вы должны использовать такие инструменты сборки, как Maven или Ant .

На начальных этапах, когда проект не очень сложен, вы можете использовать следующую строку для компиляции с соответствующим путем к классу (как предложено @Michael):

javac Support/*.java Me/*.java Wrapers/*.java

8 голосов
/ 18 августа 2010

Это должно сделать это (могут потребоваться дополнительные элементы classpath через ключ командной строки -cp):

javac Support/*.java Me/*.java Wrapers/*.java

Но если ваш процесс сборки становится более сложным (и это будет!), Вы должны посмотретьиспользование Apache Ant для автоматизации сборки.

6 голосов
/ 18 августа 2010
javac -d compiled $(find src -name *.java)
2 голосов
/ 18 августа 2010

Если вам действительно нужно просто использовать javac и стандартные команды UNIX, вы можете сделать это:

find src -name \*.java -print0 | xargs -0 javac -d classes
0 голосов
/ 26 января 2016

Реальный ответ: javac -d (места, где должны быть собраны и размещены классы) -sourcepath (источник пакета в корне) -cp (путь к классам зависимостей, который снова может быть папкой классов, где создаются классы исохранено) полное имя файла java.

ex javac -d классы -sourcepath src -cp классы src \ com \ test \ FirstSample.java

FirstSample.java содержит метод main,Структура Pacjage, упомянутая ниже.

Перед компиляцией HomeApp--src------ com \ test \ FirstSample.java (первый пример с использованием FirstPojo.java)------ ком \ тест \ FirstPojo.java--classes

После компиляции HomeApp--src------ com \ test \ FirstSample.java (FirstSample.java с использованием FirstPojo.java)------ ком \ тест \ FirstPojo.java--classes------ com \ test \ FirstSample.class (FirstSample.class с использованием FirstPojo.class)------ ком \ тест \ FirstPojo.class

0 голосов
/ 18 августа 2010

Во многих случаях Муравей перебивает.Просто используйте файл BAT, если вы находитесь в Windows, или сценарий оболочки (sh file), если вы находитесь в 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
...