2012-03-27 54 views
0

我很想看看我能否讓這個應用程序與JWS合作。它開始作爲一個客戶端應用程序,有幾個用戶數據文件的文件夾。用戶可以使用這些文件夾 - 甚至可以從網絡添加數據文件。 ...輸入JWS ...我可以在網絡啓動應用程序中使用Jar API嗎?

此代碼與不使用JWS的JAR文件一起工作,但在使用JWS時無法找到JAR文件。 (的JARname =「myjar.jar」)

static public ArrayList<String> getJarFileList(Dir d, ExtFilter ext) { 
    ArrayList<String> list = new ArrayList<String>(); 

    try { 
     FileInputStream fis = new FileInputStream(jarName); 
     JarInputStream jis = new JarInputStream(fis); 

     JarEntry jarEntry = null; 
     do { 
      jarEntry = jis.getNextJarEntry(); 
      if (jarEntry != null) { 
       String fileName = jarEntry.getName(); 
       if(d == null || fileName.startsWith(d.toString())) { 
        if(ext == null || ext.accept(null, fileName)) 
         list.add(fileName); 
       } 
      } 
     } while (jarEntry != null); 
     jis.close();    
    } catch (IOException ioe) { } 

    return list; 
} 

最後,我希望能夠得到在JAR數據文件的列表,並將它們保存到本地文件夾我在客戶端上創建。如果可能的話,我想不必確切知道JAR中所有文件的名稱,因此我不得不獲取JarFileList(用於特定的目錄和文件擴展名)。

如果沒有直接的方法,也許最簡單的事情是讓應用程序轉到網站並將數據文件複製到客戶端?對於使用什麼API來移動這些文件的任何建議也表示讚賞。

TIA - 馬克

得到了修復......將它張貼在2個小時......

回答

0

我試了幾件事情,我已經取得了一定的成功!

第一次(不成功)嘗試是將我的(默認/安裝)用戶數據目錄帶有文件,並將它們放入主jar文件內的jar文件中。然後,我在getClass()。getClassLoader()。getResourceAsStream(「myinnerjar.jar」)返回的InputStream上成功獲取內部jar文件的JarInputStream。嘗試從中獲取單個文件/流時遇到了麻煩。

在第二次(成功)嘗試中,我將數據文件jar放在服務器端,並在我的JWS應用程序中使用了一個URL。 url.openStream()工作,然後只是in.read()和out.write()。這是通過我的機器上的JAR以及Java Web Start中的工作。我能夠在我的JWS應用程序中創建充滿數據文件的本地文件夾。

唯一要處理的其他問題是本地文件的位置(我給出了相關的輸出路徑),而在Windows 7中,它們去了各個地方......嘻嘻。我認爲對於不同的平臺,我會將這些文件夾放在用戶的主目錄中。

TIA- Mark

相關問題