В чем разница между пакетом Eclipse и папкой Eclipse? - PullRequest
1 голос
/ 10 октября 2019

Доброе время суток.

Долгое время не дает покоя вопросу, который периодически возникает при работе над проектами.

В чем разница между пакетом Eclipse и папкой Eclipse.

Я понимаю, что структурно нет никакой разницы в дереве каталогов. Но Eclipse также как-то различает в Package Explorer, то есть пакеты, они должны отображать другой значок, вы можете отображать их в плоской форме, они могут привести к сокращению видов, в отличие от папок, которые отображаются с другим значком и отображают всесогласованная структура каталогов.

Как Eclipse понимает, что между ними есть разница? Где хранятся настройки, чтобы понять разницу? Можно ли настроить значение пакета вручную где-нибудь в файлах конфигурации или в настройках Eclipse?

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

Заранее спасибо.

PS Извините, текст был переведенmachine:).

PPS Я задал тот же вопрос в русской части stackoverflow, но не получил ответа. Кто-нибудь знает ответ здесь?

Ответы [ 2 ]

1 голос
/ 10 октября 2019

Как сказал AllirionX , пакеты - это папки, содержащиеся в пути сборки Java.

Чтобы завершить свой ответ, Eclipse IDE сохраняет путь сборки в файле с именем . * 1006 классам *. Этот файл специфичен для Eclipse IDE;есть один в корне каждого Java-проекта. Вы можете не увидеть его в Project / Package Explorer, потому что Eclipse IDE отфильтровывает его по умолчанию, но вы увидите это в своем файловом браузере.

Обычно это выглядит следующим образом:

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="src" path="src"/>
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
    <classpathentry kind="output" path="bin"/>
</classpath>

Как видите, каталог src/ находится в classpath, что означает, что каждая папка в нем будет пакетом.

Примечание: в итоге написалполный ответ, потому что у меня недостаточно репутации, чтобы комментировать AllirionX ответ пока.

1 голос
/ 10 октября 2019

Разница заключается в пути сборки: любая папка, находящаяся под путем сборки, является пакетом JAVA.

Если ваш путь сборки равен /src/main/java, тогда src, main, java являются папками. Если внутри /src/main/java, ваше приложение структурировано следующим образом: com / foo / bar / Main.java, тогда com, foo и bar являются пакетами.

Вы можете просмотреть и отредактировать путь сборки с помощью Right Click on your project > Properties > Java Build Path

Eclipse IDE сохраняет путь сборки в файле с именем .classpath. Этот файл специфичен для Eclipse IDE;есть один в корне каждого Java-проекта. Вы можете не увидеть его в Project / Package Explorer, потому что Eclipse IDE фильтрует его по умолчанию, но вы увидите это в своем файловом браузере.

Обычно это выглядит следующим образом:

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="src" path="src"/>
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
    <classpathentry kind="output" path="bin"/>
</classpath>

Как видите, каталог src / находится в classpath, что означает, что каждая папка в нем будет пакетом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...