2015-07-19 30 views
1

我正在嘗試使用NetBeans在Java中製作一個混亂的管理應用程序。我想將會員的圖像保存在我的src目錄內的指定文件夾中。我剛剛創建了名爲EmpImgs的文件夾用於存儲員工圖像。這裏是我的代碼:在netbeans中,如何在部署jar文件後保存或訪問映像

File srcDir = new File(file); // current path of image  
File dstDir = new File("src\\J_Mess_Mgnt\\EmpImgs\\"+Txt_C_G_M_M_ID.getText()); 
objm.copyFile(srcDir, dstDir);` // copy image from srcDir to dstDir 

這裏我用另一個類來複製圖像到預定義的文件夾,並根據它們的ID重命名圖像。

在Java IDE中一切正常。

但不幸的是,在製作一個可執行的.jar文件後,此代碼將無法工作。我無法保存或訪問該目錄中的任何圖像文件。

我剛剛通過這個網站,但我沒有找到合適的答案。

所有我需要的是保存和編輯圖像內的jar文件夾

+0

[訪問一個罐子內的資源(在Netbeans的工作而不是在命令行)]的可能重複(http://stackoverflow.com/questions/2168266/accessing-a-resource-within-在網絡上但不是在命令行上的工作) –

回答

0

最後我找到了一個適合我的問題的答案。它不可能將圖像或文件複製到行政jar文件夾中。因此我使用了不同的Idea.Create一些文件夾(根據我們的要求),其中我的可執行文件jar文件夾位於(無論哪個驅動器或位置在哪裏)。代碼是..

String PRJT_PATH="";   //variable to store path of working directory. 

private void getdire() throws IOException{ 
    File f=new File("."); 
    File[] f1=f.listFiles(); 
    PRJT_PATH=f.getCanonicalPath(); //get path details.for eg:-E:/java/dist 

} 
private void new_Doc_folder(){ //function for creating new folders 
try{ 
    String strManyDirectories="Docs"+File.separator+"Bil_Img"; //i need to create 2 folders,1st a folder namedDocs and In Docs folder another folder named Bil_Img 

    String SubDirectories="Docs"+File.separator+"EmpImgs"; //same as above but keep in mind that It will not create a Same folder again if already exists, 
    // Create one directory 

    boolean success = (new File(strManyDirectories)).mkdirs(); //create more than one directory 
    boolean success1 = (new File(SubDirectories)).mkdir(); //Creates a single directory 
     if (success && success1) { 
     }  

}catch (Exception e){//Catch exception if any 
    System.err.println("Error: " + e.getMessage()); 
} 

它成功運行。

Regds

0

呵呵喜隊友,你需要一些幫助。這是重複的,但我會削減你一些鬆懈,也許你應該稍後刪除。所以回到基礎,jvm運行字節碼,這是從編譯java源代碼到.class文件中得到的。現在,這是不同的C和C + +,你只是得到一個.exe。您不希望爲用戶提供所有這些文件夾中的許多.class文件,這些文件可以編輯,並且必須在命令行上運行命令,而是向它們提供所謂的「存檔」,這只是一個不可變的文件結構,所以他們不能搞砸應用程序,在java中稱爲jar。他們只需雙擊歸檔文件(這是一個jar文件),jvm就會調用MetaInf目錄中指定的主要方法(只是關於jar的一些信息,與其他編程語言中的清單相同)。

現在記住你的應用程序現在是一個罐子!它是不可改變的!我解釋了原因。你不能在那裏保存數據!您的程序仍然可以在命令行和IDE中工作,因爲它的工作方式與您使用應用程序時一樣,會以.class文件的形式分配到一堆文件夾中,並且您可以寫入該位置。

如果你想打包你的應用程序的資源,你需要使用流(谷歌它)。但要記住!你不能那麼節省更多的資源到罐子裏!你需要寫在別的地方!也許使用一個user.home目錄!或從班級路徑中指定的位置,並且照片將緊挨着罐子!有時候你可能需要爲你的java應用程序安裝一個安裝程序,但是如果你不需要的話,通常你不想創建額外的工作。

+0

謝謝先生,謝謝你給我這個有價值的信息。我認爲最好在jar文件夾外創建一個文件夾。使用一些命令,對。讓我試試。和任何人有一些額外的想法或知識或有關我的主題的信息請給我一個簡短的,在此先感謝, – Vijay

+0

不用擔心,我不知道什麼是最好的方式去了解所有這些東西,它帶有經驗我如果你只是堅持下去,你會學到它。我會首先建議找到一般學習之間的平衡,就像按照這些教程http://www.newthinktank.com/videos/java-video-tutorial/尋找具體的問題答案,因爲通常你不知道正確的問題是你什麼時候開始。 – Snickers3192

+0

好吧,先生,我不是一個有經驗的人。所以我希望你的真誠幫助和建議,以我的問題。,問候, – Vijay

相關問題