1

一元化されたサーバーと、jarパッケージにバンドルされ、JavaWebStartを使用してホストマシンにダウンロードされるクライアントを備えたJavaRMIアプリケーションを開発しました。クライアントアプリケーションがホストマシンにキャッシュされるため、ITAR関連の問題が発生する可能性があります。ユーザーがクライアントアプリケーション(jar)を実行し、それをマシンから削除できるようにして、たとえば、ユーザーがラップトップを海外出張に持ち込んだ場合に、残骸が存在しないようにします。

Java WebStartに「このファイルをキャッシュしないでください」と伝える方法はありますか?これは各クライアントマシンで実行できることは知っていますが、私たちの組織はユーザーではなくITARのセキュリティに責任があるため、ユーザーのコンピューターにファイルが残らないようにシステムに組み込む必要があります。

ありがとう!

4

2 に答える 2

3

Java Web Start は、可能な場合は常にアプリケーションをキャッシュから起動し、同時にサーバーで更新のバックグラウンド チェックを実行します。更新が利用可能な場合は、ユーザーに通知し、次回更新バージョンを起動します。このアプローチにより、更新がない一般的なケースで起動時間が短縮され、アプリケーションをオフラインで起動できるようになります。

1.0 リリースでは、クライアントの javaws.cfg ファイルに行 javaws.cfg.forceUpdate=true を追加することで、この動作を上書きできます。これにより、Java Web Start が初めて更新を確認するようになります。残念ながら、このフラグを設定すると、オフライン モードが正しく機能しなくなります。

Java Web Start の将来のリリースでは、オフラインでの起動を維持しながら、更新が利用可能な場合は、アプリケーションの新しいバージョンをすぐに起動するように更新チェックの動作を変更する予定です。

  1. javaws.cfg.forceUpdate=false を試してください

  2. クライアント マシンのキャッシュ フォルダを削除してみてください。https://stackoverflow.com/a/1517367/643500 を確認してください

  3. jnlp を変更して、キャッシュの管理をカスタマイズすることもできます。http://docs.oracle.com/javase/6/docs/technotes/guides/javaws/developersguide/examples.htmlを読む

    import javax.jnlp.*;
    
    DownloadService ds; 
    
    try { 
        ds = (DownloadService)ServiceManager.lookup("javax.jnlp.DownloadService"); 
    } catch (UnavailableServiceException e) { 
        ds = null; 
    } 
    
    if (ds != null) { 
        try { 
            // determine if a particular resource is cached
            URL url = new URL("http://java.sun.com/products/javawebstart/lib/draw.jar"); 
            boolean cached = ds.isResourceCached(url, "1.0"); 
            // remove the resource from the cache 
            if (cached) { 
                ds.removeResource(url, "1.0"); 
            } 
            // reload the resource into the cache 
            DownloadServiceListener dsl = ds.getDefaultProgressWindow(); 
            ds.loadResource(url, "1.0", dsl); 
        } catch (Exception e) { 
            e.printStackTrace(); 
        } 
    } 
    
于 2012-04-30T17:07:38.963 に答える
1

私は試したことはありませんが、'remove' で始まるDownloadServiceメソッドの概要を参照してください。

于 2012-04-30T17:17:17.733 に答える