У меня есть эти программы в Java:Compile пакет с Java
//file ../src/com/scjaexam/tutorial/GreetingsUniverse.java
package com.scjaexam.tutorial;
public class GreetingsUniverse {
public static void main(String[] args) {
System.out.println("Greetings, Universe!");
Earth e = new Earth();
}
}
//file ../src/com/scjaexam/tutorial/planets/Earth.java
package com.scjaexam.tutorial.planets;
public class Earth {
public Earth() {
System.out.println("Hello from Earth!");
}
}
Я могу скомпилировать без ошибок второй, используя:
javac -d classes src/com/scjaexam/tutorial/planets/Earth.java
Это ставит скомпилированный файл Earth.class
в папке ../classes/com/scjaexam/tutorial/planets/
, как и ожидалось. Теперь я должен собрать основной класс GreetingsUniverse.java
, но эта команда не:
javac -d classes -cp classes src/com/scjaexam/tutorial/GreetingsUniverse.java
src/com/scjaexam/tutorial/GreetingsUniverse.java:7: error: cannot find symbol
Earth e = new Earth();
^
symbol: class Earth
location: class GreetingsUniverse
src/com/scjaexam/tutorial/GreetingsUniverse.java:7: error: cannot find symbol
Earth e = new Earth();
^
symbol: class Earth
location: class GreetingsUniverse
Что такое право команды для компиляции (а затем запустить ту) эту программу?
Ваши команды в порядке, но в исходном коде нигде не упоминается, что Земля com.scjaexam.tutorial.planets.Earth – Ingo