компиляция javac - код в нескольких папках - PullRequest
3 голосов
/ 25 октября 2011

Я сидел на нем некоторое время и не могу понять, хотя я думаю, что это довольно легко ...

Я должен скомпилировать следующую программу, используя javac (в программе один класс и один класс тестирования):

  • класс находится в папке ./src/cplx/
  • класс тестирования находится в папке ./test/cplx/
  • junit lib находится в ./lib

и

  • классы должны быть построены до ./build/slasses
  • классы тестирования должны быть построены до ./build/test

Пожалуйста, помогите мне написать правильную команду javac для компиляции кода.


Я использовал предложенную команду end het при следующей ошибке, похоже, тестовый класс не видит класс, который я построил?

amaltea:testowanie/zad1% javac -d ./build/classes ./src/cplx/*.java
amaltea:testowanie/zad1% javac -classpath ./lib/junit-4.8.2.jar -d ./build/test ./test/cplx/*.java
./test/cplx/ComplexTest.java:20: cannot find symbol
symbol  : class Complex
location: class cplx.ComplexTest
                Complex a = new Complex(1.1, 2.2);
                ^
./test/cplx/ComplexTest.java:20: cannot find symbol
symbol  : class Complex
location: class cplx.ComplexTest
                Complex a = new Complex(1.1, 2.2);
                                ^
2 errors
amaltea:testowanie/zad1%

Ответы [ 3 ]

4 голосов
/ 25 октября 2011

Вы можете указать только один корневой каталог назначения с javac.Если вы хотите, чтобы сам корень был другим, вам нужно скомпилировать их отдельно.

javac -d ./build/classes ./src/cplx/*.java
javac -classpath ./lib/junit.jar -d ./build/test ./test/cplx/*.java
0 голосов
/ 23 октября 2014

Вы должны указать еще одну вещь в опции -classpath . Это должно быть:

javac -classpath ./build/classes/:lib/junit-4.8.2.jar -d ./test/classes test/cplx/*.java

Это информация о том, где находится ваш файл Complex.class.

0 голосов
/ 25 октября 2011

Хотя было бы неплохо начать с использования javac, чтобы понять, что происходит на более низком уровне и понять язык и инструменты, прежде чем вы начнете использовать более продвинутые вещи, я думаю, что некоторые сценарии сборки Ant или IDE, такие как Eclipse или NetBeans, подойдутты лучше.По крайней мере, если вы просто хотите получить результат, а не понимать все детали.Вы всегда можете узнать больше о них позже.В любом случае, в официальной документации должно быть указано, что вам нужно знать: http://download.oracle.com/javase/6/docs/technotes/tools/windows/javac.html

...