2016-06-16 74 views
1

我有一個項目要處理2個其他同學。 我們使用Dropbox共享項目,所以我們可以從我們的房屋寫(這不是一個很好的選擇,但它的工作,並比使用GitHub更容易)共享一個Java對象流

我的問題是關於共享對象流。 我想將流的文件放在代碼的同一個dropbox共享目錄中。 但是,當我初始化文件

File f = new File(PATH); 

我必須用我的電腦的路徑(C:\用戶** **亞歷山德羅\ Dropbox的) 正如你可以看到它與亞歷山德羅,因此對我的電腦。 這顯然不適用於另一臺PC。 如何告訴編譯器只查看源代碼/ .class文件的相同目錄?

+2

這可能是一個可能的重複到這個問題:http://stackoverflow.com/questions/6853877/reading-a-file-from-current-directory-in-java - 我想你應該在這裏找到答案。使用Dropbox分享您的代碼也是一個非常糟糕的主意。嘗試github或Bitbucket分享您的代碼,因爲它可以防止版本問題 – Supahupe

+0

您的問題不是很清楚。在關於「對象流」的主題中,最後的問題是關於引用文件而不使用絕對路徑?!編譯器與此有什麼關係? –

回答

2

請勿使用絕對路徑。使用相對路徑,如./myfile.txt。以項目目錄作爲當前目錄啓動該程序。 (這是Eclipse中的默認設置。)但是,您必須確保這兩個功能都適用於開發和生產使用。

作爲替代方案,您可以創建屬性文件並在其中定義路徑。您的代碼然後只引用一個屬性名稱,每個開發人員可以調整配置文件。請參閱Properties文檔。

3

您可以使用Class#getResource(java.lang.String)以取得相應的文件相對到Java程序的類路徑中的位置的URL

URL url = getClass().getResource("/path/to/the/file"); 
File file = new File(url.getPath()); 

注意這裏說/是你的classpath,這是根包含您的類文件的目錄的頂部。所以你的資源應該放在類路徑的某個地方,以便它可以在朋友的計算機上工作。