Javac компиляция всегда должна быть сверху пакета? (Передача пути пакета в javac?) - PullRequest
0 голосов
/ 15 января 2019

При компиляции Java-кода мне сказали, что компилятор должен быть запущен сверху пакета.

То есть, если я пытаюсь скомпилировать Test.java , который находится в tools.testing Я должен сначала установить верхнюю часть иерархии пакетов, папку, содержащую / tools , чтобы он заработал.

Класс, который я пытаюсь скомпилировать, использует другой класс, содержащийся в том же пакете, и, таким образом, передача полного пути кода компилятору не позволяет ему видеть другой класс (так как он не ищет текущий каталог и вместо этого ищет для пакета внутри него: . / tools / testing , когда он уже находится в / tools / testing )

Я хотел бы знать, всегда ли это было так, или был ли способ, например: указать путь к вершине пакета (так как пропуск полного пути не будет работать для меня) в качестве аргумента команда javac или что-то подобное?

Спасибо!

1 Ответ

0 голосов
/ 15 января 2019

Вы должны использовать интегрированную среду разработки (IDE), такую ​​как IntelliJ, Eclipse или Netbeans. В IDE вы можете создать проект Java, в котором есть каталог, выступающий в роли «исходного корня».

Если вы используете Maven в качестве инструмента для сборки, по умолчанию для такого каталога будет /src/main/java/ (это де-факто стандарт для проектов Java в настоящее время).

IDE автоматически скомпилирует ваши Java-файлы и позволит вам легко запускать их во время разработки.

Если вы хотите запустить приложение автономно, вам нужно каким-то образом упаковать его. Одним простым и эффективным способом является создание файла .jar, который содержит все файлы .class и другие необходимые вам файлы (например, изображения, файлы .properties и т. Д.). Если вы укажете файл pom.xml для своего проекта (это снова Maven) и установите для packaging значение jar, Maven автоматически создаст файл .jar для вас. Вы даже можете запустить файл .jar с некоторыми дополнительными настройками.

См. Также этот ответ для получения дополнительной информации об упаковке.

...