Вы должны вызывать компилятор из каталога myRepository
, а не из каталога пакета, например: javac myProgram/Program.java
, а затем java myProgram.Program
.
Созданные классы должны находиться в структуре пакета, чтобы загрузчик классов мог их найти (по крайней мере, с загрузчиком классов по умолчанию).
Вы можете поместить их в другой каталог, но тогда они будут иметь правильную структуру там, и вы должны передать этот каталог своей ВМ:
javac -d ../classes myProgram/Program.java
java -cp ../classes myProgram.Program
Невозможно (с помощью команды java
по умолчанию) выполнить класс в пакете, не упомянув имя пакета.
Вы можете использовать класс-оболочку, который находится в анонимном пакете (например, без объявления package
), который просто вызывает исходный класс:
class Program {
public static void main(String[] args) {
// delegate to real main class and method:
myProgram.Program.main(args);
}
}
В качестве альтернативы, если вы разрабатываете с помощью IDE, вы часто можете просто запустить программу нажатием кнопки.
Для распространения вы должны вместо этого поместить все ваши файлы классов в файл jar и определить основной класс в манифесте. Тогда вы можете назвать свою программу так:
java -jar myProgram.jar