#java
#java
Вопрос:
Я использую терминал для компиляции и сборки программ Java. Итак, у меня есть 2 класса CP1
и CP2
принадлежат имени пакета current
, которые реализованы в 2 отдельных файлах .java — CP1.java
и CP2.java
хотя классы тривиальны, вот код
CP1.java :
package current;
public class CP1{
void hello(){
System.out.println("CP1 class is used");
}
}
CP2.java :
package current;
public class CP2{
public static void main(String [] args){
System.out.println("CP2 class is used");
CP1 c= new CP1();
}
}
Поскольку CP1 и CP2 определены в одном пакете, я не импортирую текущий пакет. Оба .файлы java находятся в том же каталоге. CP1.java компилируется, и в результате получается CP1.class досье. Теперь я пытаюсь скомпилировать CP2.java с опцией with -cp в качестве:
javac -cp . CP2.java
Однако это приводит к сообщению об ошибке:
symbol: class CP1
location: class CP2
CP2.java. error: cannot find symbol
CP1=new CP1
Я пробовал разные пути к cp, но все равно получаю одно и то же сообщение об ошибке. Что я делаю не так?
Комментарии:
1. не следует ли имя класса вашего CP2.java должен быть класс CP2
2. конечно, эта опечатка
3. прочитайте обновленный ответ, я его протестировал, сработал и убедитесь, что нет опечаток
Ответ №1:
вам не хватает имени переменной экземпляра, поэтому оно должно быть таким
CP1 objname = new CP1();
не это
CP1 = new CP1();
Примечание: objname
может быть заменено любым допустимым именем переменной, чтобы вы могли искать в Интернете рекомендации по именованию / как назвать переменную или можете попробовать официальную ссылку на документ
Обновление: выполните следующие действия для компиляции
1.) Похоже, вы находитесь в том месте, где существует файл, поэтому просто сделайте это
javac -d . CP1.java
javac -d . CP2.java
-d
сгенерирует для вас пакет, если его там нет.
Комментарии:
1. извините, в исходном коде CP1 c= new CP1(), конечно
2. @olzhabala вы можете принять мой ответ, нажав на галочку sumbol (слева), чтобы поблагодарить меня. счастливого кодирования