Я ожидаю, что программа скомпилируется в исполняемый файл, но вместо этого получаю ошибки о том, что мои пакеты не существуют. Он прекрасно компилируется и работает в среде IDE.
Вот пример кода:
package edu.ntnu.idi.idat;
import edu.ntnu.idi.idat.database.Database;
import edu.ntnu.idi.idat.encryption.Encryption;
import edu.ntnu.idi.idat.utility.Clipboard;
import edu.ntnu.idi.idat.utility.IntegerChecker;
import edu.ntnu.idi.idat.utility.Terminal;
public final class TestCode {
private TestCode() { }
/**
* Test code.
*/
public static void main(
final String[] args
) {
System.out.println("Hello world");
}
}
Вот использованная команда и сообщение об ошибке:
$ javac src/main/java/edu/ntnu/idi/idat/TestCode.java
src/main/java/edu/ntnu/idi/idat/TestCode.java:2: error: package edu.ntnu.idi.idat.database does not exist
import edu.ntnu.idi.idat.database.Database;
^
src/main/java/edu/ntnu/idi/idat/TestCode.java:3: error: package edu.ntnu.idi.idat.encryption does not exist
import edu.ntnu.idi.idat.encryption.Encryption;
^
src/main/java/edu/ntnu/idi/idat/TestCode.java:4: error: package edu.ntnu.idi.idat.utility does not exist
import edu.ntnu.idi.idat.utility.Clipboard;
^
src/main/java/edu/ntnu/idi/idat/TestCode.java:5: error: package edu.ntnu.idi.idat.utility does not exist
import edu.ntnu.idi.idat.utility.IntegerChecker;
^
src/main/java/edu/ntnu/idi/idat/TestCode.java:6: error: package edu.ntnu.idi.idat.utility does not exist
import edu.ntnu.idi.idat.utility.Terminal;
^
Пакеты — это просто классы, которые я создал и разбил на разные файлы.
Я компилирую код в терминале из того же каталога, что и в IDE, поэтому предполагаю, что различий в макете проекта не будет.
Может быть, мне нужно добавить несколько операторов в команду javac для одновременной компиляции всех файлов в src? Насколько я понимаю, это не должно быть проблемой, но я могу ошибаться.
Вот изображение соответствующих частей структуры проекта:

Аналогично, я получаю еще одну ошибку при попытке запустить Файлы .class, скомпилированные в IDE:
$ java edu.ntnu.idi.idat.TestCode
Error: Could not find or load main class edu.ntnu.idi.idat.TestCode
Caused by: java.lang.ClassNotFoundException: edu.ntnu.idi.idat.TestCode
Подробнее здесь: https://stackoverflow.com/questions/798 ... n-terminal
Мобильная версия