當前,在我的eclipse項目中,我有一個我寫入的文件。但是,我已將項目導出到JAR文件,並且寫入該目錄不再有效。我知道我需要將此文件作爲類路徑資源來處理,但是如何使用BufferedWriter執行此操作?Java JAR:寫入文件
回答
您不應該將其視爲要寫入文件的類路徑資源。如果文件在您的JAR文件中,但您不想寫入包含在JAR文件中的文件,那麼您只需要這樣做?
您應該仍然可以創建並寫入文件,但它可能與工作目錄相關 - 即執行JAR文件的目錄(除非使用絕對路徑)。在eclipse中,從運行配置對話框中配置工作目錄。
這樣的資源(當被更改時)最好存儲在user.home
的子目錄中。這是用戶應該有權訪問的可重複路徑。您可以使用主類的包名稱作爲子目錄的基礎。例如。
our.com.Main -> ${user.home}/our/com/
更好地寫入當前目錄。我討厭這些面向* nix的程序,他們認爲他們可以並且應該將各種各樣的垃圾寫到我的主目錄中,並且他們希望如何。 – 2011-04-03 06:32:43
@Software Monkey你有什麼建議呢? 'user.dir'不穩定,class/Jar文件的磁盤位置不適用於任何* JWS應用程序。或小程序。 – 2011-04-03 07:05:21
您可能正在使用Linux。因爲在Linux中,當您從JAR啓動應用程序時,工作目錄將設置爲您的主文件夾(/ home/yourname /)。從Eclipse啓動時,工作目錄設置爲項目文件夾。
要確保您確實知道您使用的文件位於項目文件夾或您的JAR所在的文件夾中,您可以使用這段代碼知道JAR所在的位置,然後使用File(File parent, String name)
構造函數來創建你的文件:
// Find out where the JAR is:
String path = YourClass.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath();
path = path.substring(0, path.lastIndexOf('/')+1);
// Create the project-folder-file:
File root = new File(path);
而且,從現在開始,你可以創建你所有的文件是這樣的:
File myFile = new File(root, "config.xml");
當然,root
必須是在你的範圍。
- 1. 從JAR讀取/寫入.txt文件
- 2. Java寫入文件
- 3. Java寫入文本文件
- 4. 如何寫入jar文件中的XML文件?
- 5. Java:在JAR中嵌入Soundbank文件
- 6. java的jar文件的多次入境
- 7. 寫入作爲資源包含在Jar文件中的Java屬性文件
- 8. 寫入文件。 Java的。 Android
- 9. 使用Java寫入文件
- 10. Java:將HashMap寫入文件
- 11. 用java寫入文件
- 12. Java BitSets寫入文件
- 13. 的Java文件寫入
- 14. Java:文件讀取/寫入
- 15. 無法寫入文件 - java
- 16. Java PrintWriter不寫入文件
- 17. (java)寫入文件little endian
- 18. Java - 文件讀取/寫入
- 19. 使用Java寫入文件
- 20. Java線程寫入文件
- 21. 嵌入jar文件
- 22. 導入外部jar文件
- 23. 寫入一個jar文件裏面的文件
- 24. 從JAR中寫入外部文件(本地文件系統)
- 25. 創建/寫入/讀取Jar存檔外部的文本文件
- 26. 使用jar和文本文件輸入運行java文件
- 27. 在java中寫入和讀入文件
- 28. 嘗試執行.jar文件時未能寫入核心轉儲
- 29. 從JAR文件的輸入創建BAT-和JAR文件
- 30. 寫入文本文件問題Java
確實,錯誤的措辭。我修好了它。 – squawknull 2011-04-03 06:33:12