私の問題は次の例で最もよく説明されています。 Linuxシステムで実行されるプログラムは、ではない Unicodeモードそれでもなお、ISO-8859-15にあります。 [email protected]
Java:Runtime.getRuntime()。exec()は、ユニコードで引数を渡さないでください。
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で同じことが起こります。 Runtime.exec()
で引数を渡す方法を決定するためにJavaを使用する設定変数または環境変数はどれですか?
"そうすべきではない" - それは冗長ではありません。あなたはそれが間違ってそれらを渡したいと思うでしょうか? ;)ネットビーンズがファイルを保存する方法を確認しましたか? Netbeansはjavacを使ってコンパイルを行い、コンパイルする必要があります。 –
Peter:ありがとう、タイトルを修正しました。 Netbeansが同じクラスファイルを作成するかどうかを確認します。 –
それをチェックしました。 Netbeansから実行すると、間違った結果が生成されます。コマンドラインで同じクラスファイル(Netbeansによって構築された)を実行すると、正しい結果が得られます。 –