Моя проблема лучше всего объясняется на примере:
Следующая программа запускается в системе Linux, которая не в режиме Unicode, но в ISO-8859-15. Среда настроена следующим образом: LC_CTYPE=de_DE@euro
import java.io.*;
import java.util.*;
public class UnicodeTest {
public static void main(String[] args) throws Exception {
Runtime.getRuntime().exec(new String[] { "foobar", "äöü" });
}
}
Когда я компилирую эту программу в командной строке с использованием javac
и запускаю ее, foobar
правильно получает аргумент äöü
в ISO-8859-1. Эта же программа, запускаемая из Netbeans, передает аргумент как Unicode, что делает его непригодным для использования в вызываемой программе. То же самое происходит в Tomcat, когда вызывается этот метод. Какой параметр или переменная среды использует Java, чтобы определить, как передавать аргументы в Runtime.exec()
?