私は書いたJavaデスクトップアプリケーションを持っています。 実行中に、システムに定義されているデフォルトのパス名でフォルダとファイルを作成します。ユーザ作業ディレクトリ:XP対Vista
Java.io.filesは明確に述べている:By default the classes in the java.io package always resolve relative pathnames against the current user directory. This directory is named by the system property user.dir, and is typically the directory in which the Java virtual machine was invoked.
また、私はインストールして、ショートカットの作成を可能にするためのIzPackを使用しています。
私はデスクトップのショートカットを取得し、上記のファイルおよびフォルダの作成はのIzPackは、JARをインストールした場所にある、インストール後に、私のXPのコンピュータ上で自分のアプリケーションを実行していますよ。これは予想される動作です。
しかし、私はVistaマシン上でこれをテストするとき、フォルダとファイルがデスクトップに作成されます! Jarが正しい場所にあるにもかかわらず(c:\ program files .. etc)。
私は、これらのファイルは、JARがデスクトップにであり、そして最も確かではない同じフォルダに作成することにしたいです。
誰も私にここで何が起こっているか上の任意の洞察力を与えることはできますか?
ライティングをVistaのc:\ programファイルにはUACの同意が必要なので、システムはフォールバックとしてデスクトップを使用していると思われます。 –
私はフォールバックを制御できると思いますか? – uzil24
コアアプリライブラリなどの%PROGRAMFILES%の中にデフォルトのJavaアプリインストールを設定することはできます。しかし、** Windows/OS環境下で%PROGRAMFILES%の中に**ユーザ/データ設定**を保存する代わりに、 'System.getProperty(" user.home ")'または 'System.getenv(" USERPROFILE " ) 'あなたのJavaアプリケーションのための特別なフォルダを内部に入れておくと、ユーザ/アプリケーションが何かを変更しやすくなります。 –