1

JWSを使用してインターネット上でJavaアプリケーションのデモを利用できるようにする必要があります。それはかなりうまくいきます。不足しているのは、アプリケーションで作業ディレクトリファイルを利用できるようにすることだけです。

getResource()の方法については知っています...問題は、同じアプリケーションに対して異なるプラグインがあり、それぞれが正しく機能するために、作業ディレクトリに異なるファイル(および多くの場合同じファイルの異なるバージョン)を必要とすることです。したがって、アプリケーションに別の動作をさせたい場合は、作業ディレクトリを変更するだけです。

現在、デモは署名されたjarファイルにパッケージ化されており、作業ディレクトリからのファイルが必要になるまで正しくロードされます。明らかに、このデモのインターネットユーザーはファイルの準備ができていません。これらのファイルをWebStartアプリケーション(読み取り/書き込みアクセス)が作業ディレクトリで利用できるようにする方法が必要です。

アプリケーションが起動時にファイル自体をダウンロードするようにしたり、起動時にファイルをjarにパッケージ化して抽出したりするなど、いくつかのことを考えました。

アドバイスや新しいアイデアを探しています。これからも作業を続けていきます...信頼できるものが見つかったら更新します。

どうもありがとうございます!

4

2 に答える 2

1

私は、自分のニーズに合ったものについて、調査で見つけたものを共有すると言いました. これが私がこれまでに持っているものです。

現在の作業ディレクトリ (CWD) の概念は、Java Web Start (JWS) アプリケーションのコンテキストでは実際には意味をなさないことがわかりました。これにより、私は JWS の CWD を探すのをやめ、他の選択肢を探すようになりました。

名前の前に「/」を追加するだけで、(getResource() を使用して) JAR ファイルのルート ディレクトリ内のファイルを参照できることがわかりました (いいえ、知りませんでした)。(たとえば、「/log4j.properties」。) これの影響は、その JAR ファイル (実際には単なる ZIP ファイル) のルートで読み取り専用の方法でのみ参照されるファイルを取得できるようになったことです。 )。AnyClass.class.getResourceAsStream を使用して、JAR ファイルのルートにある任意のファイルを参照できます。これにより、アプリケーションを実行するために必要な読み取り専用ファイルの問題が除外されますが、アプリケーションが有効な CWD から実行されるか、JWS コンテキストから実行されるかを示すコードの切り替えが必要になります。(非常に単純に、JWS アプリケーションの JNLP ファイルにプロパティを設定し、そのプロパティが設定されているかどうかを確認して、ファイルの検索場所を知ることができます。)

書き込み専用ファイル (私の場合はログ ファイル) の場合は、プロパティを使用して、アプリケーションの名前が <user.home>/.appname のディレクトリを追加し、それにログ ファイルを追加しました。

読み取り/書き込みファイル (私の場合はありません) は、おそらく書き込み専用ファイルと同じ場所に移動するだけです。ソフトウェアは、必要に応じてそれらをどこかにアップロードすることを処理でき、一度変更されると思います。

それが私が今のところ問題に対処する方法です。

于 2010-09-06T00:17:30.183 に答える
0

コンピューターへのファイルアクセスを取得するために、明示的に要求できるサービスがあることに注意してください(完全なアクセスを要求しない限り(署名されたjarファイルが必要です))。

次に、これらのファイルをどこに配置する必要があるかを判断する必要があります。基本的に、どこに何があるのか​​、実際にどこにでも書き込むことができるのかはわかりません。tmpファイルを作成することはできますが、それらはなくなります。

JNLPサーバーと通信するファイルシステムの抽象化により、ユーザーデータをサーバーに保存しますか?

于 2010-08-25T21:56:13.393 に答える