簡體   English   中英

運行jar時應該將文件放在哪里才能訪問它們?

[英]Where should i place my files in order to be able to access them when i run the jar?

我將一些對象存儲在文件中,並且在Netbeans控制台中一切正常。 但是當我通過命令行(java -jar myapp.jar)運行JAR時,我得到了:

在此處輸入圖片說明

我應該在哪里放置文件以便能夠通過命令行運行該應用程序?

答案取決於您是否要寫入文件...

你可以...

確保文件相對於Jar文件放置,並使用相對路徑。 問題是,如果執行上下文與jar和文件的存儲目錄不同,則將無法再次找到它們。

這也將取決於您的構建過程,以確保將所有必需的文件都放置到復制到Jar的構建位置中

你可以...

將文件放在一個眾所周知的位置,例如,在Windows上,您可以使用{user.home}/AppData/Local/{application name}在Mac上,您可以使用{user.home}/Library/Application Support/{application name}並將文件放在此處,那么您可以使用文件的絕對路徑

這很可能會成為安裝問題,因為您需要確保在安裝應用程序時將所有必需的文件復制到所需的位置。

如果文件是在運行時自動生成的,那么您只需要確保目錄存在就可以了,如果不存在則進行設置

你可以...

將文件存儲在Jar上下文(AKA嵌入式資源)中,執行此操作的方法將取決於IDE和構建過程,例如,在Netbeans中,您可以將文件復制到項目的src目錄中,它們將自動包含在生成的Jar文件中。 我相信Eclipse可以以相同的方式工作。 但是,如果您使用的是Maven,則需要將文件放入resources目錄。

然后,您可以根據需要使用Class#getResourceClass#getResourceAsStream訪問這些資源。

但是,這將使資源變為只讀。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM