Obtendo o nome da classe atual, incluindo o pacote

Estou trabalhando em um projeto e um requisito é que, se o segundo argumento para o método principal começar com '/' (para linux), considere-o como um caminho absoluto (não é um problema), mas se não iniciar com '/', ele deve obter o caminho de trabalho atual da classe e anexar a ele o argumento fornecid

Posso obter o nome da classe de várias maneiras:System.getProperty("java.class.path"), new File(".") egetCanonicalPath(), e assim por diante.

O problema é que isso só me dá o diretório em que os pacotes estão armazenados - ou seja, se eu tiver uma classe armazenada em "... / project / this / is / package / name", isso só me daria "/ project / "e ignora o nome do pacote onde estão os arquivos .class reais.

Alguma sugestão

EDIT: Aqui está a explicação, extraída da descrição do exercício

sourcedir pode ser absoluto (começando com "/") ou relativo ao local de execução do programa em

sourcedir é um argumento dado para o método principal. como posso encontrar esse caminho?

questionAnswers(8)

yourAnswerToTheQuestion