2011-01-28 2 views
5

내 문제가 가장 좋은 예에서 설명하지 말아야 할 때 Runtime.getRuntime() 간부 인()는 유니 코드에 인수를 전달합니다 그러나 ISO-8859-15에 있습니다. [email protected]자바 :.이

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에서 실행되는 동일한 프로그램은 인수를 유니 코드로 전달하므로 호출 된 프로그램에서 사용할 수 없게 만듭니다. 해당 메소드가 호출 될 때 Tomcat에서도 마찬가지입니다. 어떤 설정이나 환경 변수가 Java를 사용하여 Runtime.exec()에 인수를 전달하는 방법을 결정합니까?

+0

"해야하지 않을 때"- 그렇게 중복되지는 않습니다. 혹시 잘못 전달하길 원하십니까? ;) netbeans이 파일을 저장하는 방법을 확인 했습니까? Netbeans은 컴파일을 수행하기 위해 javac을 사용하여 컴파일해야합니다. –

+0

Peter : 감사합니다. 제목을 수정했습니다. Netbeans이 동일한 클래스 파일을 생성하는지 확인합니다. –

+0

확인했습니다. Netbeans에서 실행하면 잘못된 결과가 생성됩니다. 명령 줄에서 동일한 클래스 파일 (Netbeans에서 작성)을 실행하면 올바른 결과가 생성됩니다. –

답변

1

발견. 동작은 시스템 속성 file.encoding에 의해 제어됩니다. Netbeans은 이것을 UTF-8로 설정합니다. 커맨드 라인에서는 ISO-8859-15입니다.

관련 문제