Основываясь на ваших комментариях, похоже, что вы добавили декларации пакетов в классах, как
package a;
public class ClassA{
//...
}
и на основе вашего вопроса вы утверждали, что вы также включили import a.ClassA
в ClassB как
package b;
import a.ClassA;
public class ClassB{
//...
}
Так скомпилировать ClassB из b
директории, которую вы должны включить в локализации командном другие пакеты, которые вы собираетесь использовать, в этом случае локализация каталога, содержащего каталог a
. Вы сделаете это, установив параметр -classpath
(или короче -cp
).
Так что, если вы находитесь в папке b
вы можете сделать это с помощью
javac -cp .. ClassB.java
где ..
означает родительский каталог (один держит как a
и b
).
Для запуска кода вам также необходимо указать расположение каталога, в котором хранятся дополнительные пакеты, используемые вашим приложением. Таким образом, вы должны использовать
java -cp .. b.ClassB
Это хорошая идея поставить весь класс в одной папке, так что вы можете назвать это легко –
Было бы неплохо, если бы вы предоставить код, который не компилируется. иначе мы можем только догадываться, что вы сделали неправильно. ;) – ChrisKo
Опишите в 'ClassA', что он относится к пакету' a' (другими словами, он начинается с 'package a;')? – Pshemo