Компиляция и запуск Java из командной строки - PullRequest
0 голосов
/ 26 февраля 2020

Я создал следующую структуру проекта.

[~/Projects/CountWords]@Ubuntu1804  #> find .
.
./bin
./src
./src/main
./src/main/java
./src/main/java/App.java

Это приложение. java содержимое:

package src.main.java;


public class App {
    public static void main(String[] args){
        System.out.println("Hola");
    }
}

Я компилирую свое приложение как:

javac -d bin/ -cp src/main/java/ src/main/java/*

Который работает нормально. Я использую звездочку, потому что у меня будет больше классов в этой папке, но пока у меня есть только один. Это создает следующую структуру:

[~/Projects/CountWords]@Ubuntu1804  #> find .
.
./bin
./bin/src
./bin/src/main
./bin/src/main/java
./bin/src/main/java/App.class
./src
./src/main
./src/main/java
./src/main/java/App.java

Но моя проблема в том, когда я пытаюсь запустить приложение. Я предполагал, что это будет работать:

java src.main.java.App

Но это не с:

Error: Could not find or load main class src.main.java.App
Caused by: java.lang.ClassNotFoundException: src.main.java.App

Что я делаю не так?

Я знаю, что это должно быть очень глупо вопрос, но я хочу написать небольшой / средний проект вручную, чтобы понять, что сама среда IDE делает. Поработав некоторое время с Java, используя Eclipse, я заметил, что понятия не имею, как это сделать вручную, и я хочу это изменить.

1 Ответ

1 голос
/ 26 февраля 2020

Вы должны определить путь к классу для java. Есть два варианта:

запустить

java -cp ./bin src.main.java.App

или перейти в каталог bin, а затем запустить без cp

cd bin 
java src.main.java.App
...