System.setProperty( "file.encoding"、 "utf-8");
以下のコメントは、同じJVMで実行されているすべてのアプリのfile.encodingが変更されることを意味しますが、この種の動作は観察されません。
システムプロパティをプログラムで設定すると、同じJVM内で実行されているすべてのコードに影響します。これは、特にそのような低レベルのシステムプロパティについて説明する場合に危険です。
この質問を読み、キャッシュとJava 1.5
のデフォルトのJava文字エンコードの設定には多くの問題があることを理解しましたか?
次のコードを検討してください。
public class FileEncodingTest {
public static void main (String[] args) {
System.out.println(System.getProperty("file.encoding"));
System.setProperty("file.encoding", "UTF-8");
System.out.println(System.getProperty("file.encoding"));
}
}
次に、プロジェクト構成で設定されたEclipseとJava1.6を使用してjarファイルを作成します。
次に、Java 1.7でjarファイルを実行すると、これはすべてWindows7で発生します。
java -jar FileEncodingTest.jar
Cp1251
UTF-8
java -jar FileEncodingTest.jar
Cp1251
UTF-8
では、誰が、そしてなぜの値をリセットするのfile.encoding
ですCp1251
か?
UPD:
誰でも、JVM、入力時にプロセスに関して何が起こるかを段階的に説明するリンクを説明または提供できますjava -jar MyClass.jar
か?