我試圖以編程方式查找它運行時的jar文件的完整路徑。我知道有一些關於這個其他問題,但沒有人似乎爲我工作 - 最明顯的是,我經歷了如何找到正在運行的jar文件的路徑
MyClass.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath()
絆倒多次。在Eclipse中調試時,該特定的方法適用於我,但是一旦我編譯到jar,它就會返回一個NullPointerException。其他方法在編譯後遇到了類似的問題。
我有一個使用java.class.path的臨時解決方法,但是當我從GUI執行jar時,它只返回完整路徑 - 在終端中,它失敗。
我還應該注意,我遇到這個問題的唯一系統是Linux。在Windows和Mac上,我沒有麻煩。
任何幫助將不勝感激:)
謝謝!
德里克
編輯:罐子是可執行的,如果改變任何東西。
非常感謝!這是很好的知道。 另一個注意事項,如果它改變任何東西 - 我忘了提及這是一個可執行的jar文件。 – 2011-04-16 18:14:15
如果您確定,那麼系統屬性java.class.path就是您的朋友。你的班級在那裏。 – bmargulies 2011-04-16 18:21:17