2012-03-27 86 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

相关问题