當前,在我的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. Linux從java jar寫入文件
- 2. 將文件夾寫入JAR文件
- 3. 將文本文件寫入Jar
- 4. 從JAR讀取/寫入.txt文件
- 5. Java寫入文件
- 6. Java + jar文件
- 7. log4j:用jar寫入日誌文件
- 8. Java寫入文本文件
- 9. 如何寫入jar文件中的XML文件?
- 10. java的jar文件的多次入境
- 11. Java:在JAR中嵌入Soundbank文件
- 12. 寫入作爲資源包含在Jar文件中的Java屬性文件
- 13. 使用Java寫入文件
- 14. 寫入到txt文件java
- 15. 寫入文件。 Java的。 Android
- 16. 用Java寫入文件
- 17. java(matcher.group()) - 寫入文件
- 18. 用java寫入文件
- 19. Java BitSets寫入文件
- 20. PrintWriter不寫入文件(Java)
- 21. 的Java文件寫入
- 22. 寫入文件的Java
- 23. Java,寫入標題文件
- 24. Java PrintWriter不寫入文件
- 25. 使用Java寫入文件
- 26. Java:文件讀取/寫入
- 27. Java - 文件讀取/寫入
- 28. Java FileWriter不寫入文件
- 29. 寫入文件java錯誤
- 30. (java)寫入文件little endian
確實,錯誤的措辭。我修好了它。 – squawknull 2011-04-03 06:33:12