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?