Pracuję nad projektem i jednym z wymagań jest to, że drugi argument dla metody głównej zaczyna się od „ /
” (dla systemu Linux), powinien traktować go jako ścieżkę bezwzględną (nie jest to problem), ale jeśli nie zaczyna się od „” /
”, Powinien pobrać aktualną ścieżkę roboczą klasy i dołączyć do niej podany argument.
Mogę dostać nazwę klasy na kilka sposobów: System.getProperty("java.class.path")
, new File(".")
i getCanonicalPath()
, i tak dalej ...
Problem polega na tym, że to daje mi tylko katalog, w którym przechowywane są pakiety - tj. Jeśli mam klasę zapisaną w " .../project/this/is/package/name
", dałoby mi to tylko " /project/
" i ignoruje nazwę pakietu, w którym faktycznie znajduje się .class files
.
Jakieś sugestie?
EDYCJA: Oto wyjaśnienie zaczerpnięte z opisu ćwiczenia
sourcedir może być bezwzględne (zaczynając od „/”) lub względne w stosunku do miejsca, z którego uruchamiamy program
sourcedir jest podanym argumentem dla metody głównej. jak mogę znaleźć tę ścieżkę?