2012-04-12 2 views
0

У меня есть класс A.java, который использует класс B.java как объект.Как скомпилировать класс Java, который использует другой класс Java как объект?

Когда я компилирую класс A.java, он выдает сообщение об ошибке компиляции, поскольку компилятор Java не может ссылаться на объект B.java вообще. Итак, вот мой вопрос:

Как скомпилировать класс A.java, если он включает в себя другой класс B.java?

Eclipse - отличный инструмент, но этот инструмент не полезен, когда мне нужно скомпилировать Java-файл для Java-компонентов.

+0

Так вы говорите, что у вас эта ошибка при компиляции с eclipse, с командной строкой или с обоими? Кажется, есть некоторая путаница среди нас в вопросе вашего вопроса. – jmort253

ответ

6

Вы не объяснили, как вы пытаетесь скомпилировать A.java, или вы уже скомпилировали B.java. Если вы еще не скомпилировали ни один из них, просто скомпилируйте их вместе, например.

javac -d bin path/to/A.java path/to/B.java 

Если вы уже скомпилирован B, вы должны убедиться, что у вас есть право, путь к классам например

javac -d bin -cp path/to/Broot path/to/A.java 

Обратите внимание, что значение не должно классов быть B.class самого файла, ни даже каталог, содержащий B.class - но корень выходной иерархии. Так что, если B находится в пакете foo.bar и B.class находится в каталоге/х/г/г/Foo/бар вы написать:

javac -d bin -cp /x/y/z path/to/A.java 
+5

Джон ваш представитель, как акции Apple. Он просто продолжает подниматься и подниматься. – jmort253

0

Ошибка в том, что класс B еще не скомпилирован. Не могли бы вы проверить класс B на наличие ошибок, скомпилировать B, а затем перейти к A?

0

убедитесь, что зависимость (баночка файл) и текущий каталог находится в пути к классам при компиляции класса.

0

Это дубликат вопроса: Can I use JAVAC to compile a project with multiple files and directories?

В зависимости от типа объекта B необходимо добавить его в пути к классам. Если он находится в файле jar (library), вы должны указать опцию -c в командной строке. Для добавления других исходных файлов используйте параметр -s.

После того, как вы начнете работать над большими проектами, будет сложно продолжать это вручную в командной строке. Посмотрите на правильную среду IDE, такую ​​как затмение. Он делает все это для вас. Вам нужно только установить путь класса в свойствах один раз, а затем вы можете просто скомпилировать с помощью некоторых параметров меню (или установить автоматическое построение или использовать сочетания клавиш).

+0

Собственно, это не дубликат, если только этот вопрос не включил eclipse. OP особо упомянул, что «Eclipse - отличный инструмент, но этот инструмент не полезен, когда мне нужно скомпилировать Java-файл для Java-компонентов». Это означает, что ОП испытывает эту проблему в затмении. – jmort253