Как получить текущее имя класса, включая имя пакета в Java?

Я работаю над проектом, и одно требование: если 2-й аргумент для основного метода начинается с «/» (для Linux), он должен рассматривать его как абсолютный путь. (не проблема), но если он не начинается с «/», он должен получить текущий рабочий путькласса и добавить к нему заданный аргумент.

Я могу получить имя класса несколькими способами: System.getProperty("java.class.path"), new File(".")и getCanonicalPath ()и так далее...

Проблема в том, что это дает мне только каталог, в котором хранятся пакеты, т.е. если у меня есть класс, хранящийся в " .../project/ this/is/package/name", он даст мне только " /project/" и проигнорирует имя пакета, в котором живут фактические файлы .class.

Есть предложения?

РЕДАКТИРОВАТЬ: Вот объяснение, взятое из описания упражнения

sourcedir может быть либо абсолютным (начиная с «/»), либо относительным относительно того, где мы запускаем программу из

sourcedir — заданный аргумент для основного метода. как мне найти этот путь?

72
задан nabster 24 July 2019 в 03:02
поделиться