2

deployment.properties (ユーザーの appdata フォルダーにあるもの) のオプションをプログラムで (ファイルに直接書き込まずに) 変更する方法はありますか?

たとえば、私が使用できるシステムオプションの場合:

System.setProperty("My Property", "My Value");

編集: @eis の回答に基づいて、次のコード (例として) が機能します。

import com.sun.deploy.config.Config;

public class Main {
    public static void main(String[] args) {
        Config.setMixcodeValue(Config.MIXCODE_ENABLE);
        Config.store();
    }
}
4

1 に答える 1

3

これらのオプションは、Java コントロール パネルから変更することを意図しています。

ロックされている場合、ユーザーはそれを変更できません

SomeKey=SomeValue などのシステム展開プロパティは、別のキー SomeKey.locked を含めることでロックできます。キー SomeKey.locked には、値が設定されている場合と設定されていない場合があります。いずれの場合も、ユーザーが変更できないように SomeKey=SomeValue はロックされます。システム展開プロパティがロックされていない場合、ユーザーはそれを変更できます。

そうでない場合、ユーザーはコントロール パネルから変更できます。

現在、プログラムによるアクセスに関しては、sun 実装クラスには、setCacheDirectory() など、これらのプロパティの少なくとも一部へのアクセスを提供するConfig クラスがあります。暴露された人にとって、その変化メカニズムはおそらく機能します。

その他については、上記のクラスに基づいて、deployment.properties はシステム プロパティとして内部的に保存されるため、System.setProperty() がそれらを変更しない理由もわかりません。ただし、そのようなプロパティを変更しても、効果がある場合とない場合があります。

于 2013-03-18T14:57:50.637 に答える