0

リモートコンピュータでタスクを実行する小さなJavaユーティリティアプリケーションがあります。このアプリは、ユーザーが接続したいコンピューターのIPアドレスまたはホスト名を入力できるドロップダウン/コンボボックスをユーザーに提供します。ドロップダウンで接続したアイテム/ホストの履歴をユーザーが持つことができれば便利です。

配布可能なjar内にファイルを作成し、それを使用して履歴を維持できると思いました。しかし、jar内のファイルへの書き込みは不可能のようですか?別のアプローチは、jarファイルの外部にあるテキストファイルやデータベースなどを使用することです。しかし、これは私がやりたいことではありません。私のユーティリティアプリは1つのファイルだけであり、外部ファイルから完全に独立していることを望んでいます。また、アプリを実行するたびに、jarファイルの周りにテキストファイルを貼り付けたり、テキストファイルを作成したりするのはよくありません。

この場合を考慮して、どのオプションを使用できますか?履歴の保存または保持に役立つAPIはありますか?

4

2 に答える 2

2

この情報を隠しファイルと一緒にユーザーのホームディレクトリに保存してみませんか?多くのアプリケーションは同じことをします。

この方法でユーザーのホームディレクトリを取得できます

String userhome = System.getProperty("user.home");
于 2012-04-11T15:34:07.970 に答える
1

.datJAR に関連付けられたファイルをどこかに保存しておくことをお勧めします。権限の問題を回避するために、同じディレクトリまたはユーザーのホーム (@dash1e が推奨) に配置できます。それが最も簡単な解決策であることがわかると思います。

もう 1 つのオプションは、JAR にバンドルできる Java ベースのデータベース ソリューションを使用することです ( Apache Derbyなどを参照)。これにより、どこかにファイルが作成されることに注意してください。ただし、データベースとしてやり取りしているだけなので、ファイルレベルの管理について心配する必要はありません。

最後のオプションの 1 つは、独自のファイルを維持する必要をどうしても避けたい場合は、システム上の難読化された場所にデータを格納する OS に依存しない方法を提供するJava Preferences APIを使用することです。これはおそらく、この API の目的を少し誤用したものですが、求めていることは達成できます。

于 2012-04-11T15:39:37.583 に答える