我正在處理一個項目,一個要求是如果主方法的第二個參數以'/'開頭(對於linux),它應該將其視爲絕對路徑(而不是問題) ,但如果它不以'/'開始,它應該獲得該類的當前工作路徑並將它附加給給定的參數。獲取當前類的名稱,包括包
我可以通過多種方式獲取類名稱:System.getProperty("java.class.path")
,new File(".")
和getCanonicalPath()
,等等..
的問題是,這只是讓我在其中封裝的存儲目錄 - 也就是說,如果我有一個存儲在「.../project/this/is/package/name」中的類,它只會給我「/ project /」,並忽略實際的.class文件所在的包名。
有什麼建議嗎?
編輯: 這裏的解釋,從鍛鍊說明採取
sourcedir可以是絕對路徑(以「/」)或相對的地方,我們從
sourcedir運行程序是主要方法的一個給定的論證。我怎麼能找到那條路?
如果代碼打包在JAR中(或者不在您所假設的文件夾/文件結構中),您將執行什麼操作?這是一個危險的假設;這對於一個小實驗,班級任務或其他一次性情況來說可能工作得很好,但是請不要養成對生產質量代碼做出這種假設的習慣。 – 2012-03-15 22:56:15
找到類文件的路徑是沒有意義的。另外練習描述並沒有提到如果你仔細閱讀(*我們從*運行程序的地方意味着程序被用戶調用的當前路徑)。 – 2012-03-15 23:15:20
也許你可以幫助我更好地理解要求?我需要檢查參數以'/'開始(在描述中提及)。如果是這樣,就把它當作絕對的。原樣。但如果沒有,我該如何對待它? – 2012-03-15 23:18:43