1

私はしばらくIntelliJを使用していて、その一連の機能を楽しんでいますが、Javaアプレットで実行構成を機能させるのに苦労しています。Swingを使用する既存のJavaツールがあり、JAppletクラスを使用してこれらのGUIオブジェクトをアプレットとしてロードしています。問題は、ロードする必要のある構成ファイルがいくつかあることです。私はこれらを作業ディレクトリからロードしますが、私の知る限り、この作業ディレクトリは通常、アプレットが存在するディレクトリになります。主な問題は、IDEAがスタートアップ変数を設定することだと思います。

-Didea.launcher.bin.path=IDEA_BIN_DIR

これを変更できるようにしたいのですが、変更できないようです。アプレットの実行構成VMパラメーターを編集してこのフラグをオーバーライドしようとしましたが、IDEAは、別の何かを指定しても、上記のフラグを引き続き入力します。

つまり、IDEAで実行構成の作業ディレクトリを設定できないため、ローカル構成ファイルをロードするのに苦労しています。誰かがこれを回避する方法を知っているか、IDEAで構成ファイルを使用するJavaアプレットを実行するより良い方法を知っていますか?

4

1 に答える 1

2

アプレットは通常、ブラウザのサンドボックスで実行され、セキュリティ上の理由から、このようなアプレットはローカルコンピュータのファイルシステムにアクセスできません。

したがって、ファイルシステムから構成ファイルをロードすることは一般的に悪い考えであり、「作業ディレクトリ」はアプレットの有用な用語ではありません。

  • これらのファイルがめったに変更されない場合(つまり、原則として開発者のみ)、アプレットのクラスファイル(つまり、jarファイル内、または開発中にクラスが生成されるディレクトリ内)に配置し、class.getResource()または.getResourceAsStream()を使用してロードできます。彼ら。

  • 構成ファイルをWebマスターが定義できるようにする必要がある場合は、それらをWebサーバーに配置します(getCodeBase()または.getDocumentBase()に相対的な固定位置に配置するか、HTMLタグのアプレットタグのパラメーターとして指定します)。

  • これらがユーザー固有の構成ファイル(アプレットが書き込むことができるはずです)である場合は、それらをサーバーに保存し、ログイン後に取得/保存する必要があります(つまり、サーバー側にロジックが必要です)。クライアント側でそれら。

    これを行う現在の方法は、JNLP API(javax.jnlp。*内)を使用することです。永続性、またはデータのロード/保存を可能にするいくつかのインターフェースがあります(ユーザーがFileChooserを持っている場合)。または、アプレットに署名してユーザーにAllPermissionを要求することもできます。そうすると、ファイルシステムにアクセスできます。

申し訳ありませんが、これらのどれもあなたの元の質問に答えません(私はIDEAを使用しません)が、おそらくこれらはあなたが別の方法を見つけるのに役立ちます。

于 2011-08-17T00:48:36.683 に答える