IBM Runtime Environment for Linux platforms, Java 2 Technology Edition, 버전 1.4.2

사용자 안내서


저작권 정보

참고: 이 정보와 이 정보가 지원하는 제품을 사용하기 전에 반드시 주의사항의 일반 정보를 읽으십시오.

이 사용자 안새서 개정판은 새 개정판에서 별도로 명시하지 않는 한, 사용 가능한 다음 플랫폼에 적용됩니다.

또한 모든 후속 릴리스 및 수정사항에 적용됩니다.

(c) Copyright Sun Microsystems, Inc. 1997, 2003, 901 San Antonio Rd., Palo Alto, CA 94303 USA. All rights reserved.

(c) Copyright International Business Machines Corporation, 1999, 2004. All rights reserved.

머리말

이 사용자 안내서는 모든 Linux 플랫폼용 IBM(R) Runtime Environment에 대해 설명합니다. 플랫폼별 정보가 명확하게 표시되어 있습니다. 사용자의 플랫폼에 맞는 자료인지 확인하십시오. 특히 Web Start 및 Plug-in은 Intel 구조의 Linux용 32비트 SDK에만 적용됩니다.

IBM Runtime Environment에는 JVM(Java Virtual Machine), Sun Microsystems의 핵심 Java 클래스 및 지원 파일이 들어 있습니다. Runtime Environment에는 SDK 패키지에 들어 있는 모든 클래스가 들어 있지는 않습니다.

사용자 안내서에서는 Runtime Environment에 대한 일반 정보와 Runtime Environment를 Sun에서 구현한 것과 IBM에서 구현한 것 간의 차이에 대한 특정 정보를 제공합니다. 사용자 안내서를 Sun 웹 사이트 http://java.sun.com에 있는 다른 다양한 책들과 같이 읽는 것이 좋습니다.

IBM JVM 진단 안내서에는 IBM JVM에 대한 자세한 정보가 들어 있습니다.

SDK for Linux가 테스트된 환경 목록을 보려면 http://www-106.ibm.com/developerworks/java/jdk/linux/tested.html을 참조하십시오.

Runtime Environment for Linux는 SDK의 서브세트로 Java 응용프로그램만을 실행할 수 있습니다. SDK를 설치한 경우 Runtime Environment가 포함됩니다.

"Runtime Environment" 및 "Java Virtual Machine"이라는 용어는 이 안내서에서 상호 교환적으로 사용됩니다.

"1.4.1"에서 "1.4.2"로 갱신하는 것과 같은 명확한 변경이나 사소한 변경을 제외한 버전 1.4.2 사용자 안내서에 대한 기술적 변경사항은 HTML이나 컬러 인쇄 사본에서 빨간색으로 표시되고 변경사항 왼쪽에 수직 막대가 표시됩니다.

목차

저작권 정보
머리말
개요
| |
규약
버전 호환성
| |
Linux PPC64 사용자 정보
Linux용 Runtime Environment에 포함된 파일
라이센스 계약
JIT 컴파일러
Java Native Interface 및 Native Method Interface
| |
Red Hat Enterprise Linux (RHEL) 3에 설치
Linux용 Runtime Environment 구성
Linux용 Runtime Environment 설치 제거
설치 가능한 RPM 패키지 설치 제거
압축된 TAR 패키지 설치 제거
| |
JDBC/ODBC 브릿지 복원
Java 응용프로그램 실행
명령 요약
옵션
표준 옵션
비표준 옵션
java 명령의 글로벌화
Classpath에 대한 작업
| |
대형 페이지 메모리 할당 구성
bootclasspath에 대한 작업
가비지 콜렉션 정책 지정
일시정지 시간
일시정지 시간 감소
힙이 가득 찬 상태의 환경
가비지 콜렉션에 관한 추가 정보
JVM의 신호 처리 방법
JVM에서 사용되는 신호
원시 코드 드라이버를 신호 체인 라이브러리로 링크
| |
RMI용 연결 핸들러 풀 구현
IBM 빌드 및 버전 번호 찾기
(Linux IA 32비트 전용) Java Plug-in 사용
Netscape 6 및 Mozilla용 Java Plug-in 설치 및 구성
Netscape 4용 Java Plug-in 설치 및 구성
gcc3.2.x 컴파일 Mozilla 브라우저에 Java Plug-in 사용
DBCS 매개변수 사용
(Linux IA 32비트 전용)Web Start 사용
Web Start 설치
floating 스택에 대한 작업
DBCS 언어에서 입력 방법 전환
사용자 시스템에 응용프로그램 설치
알려진 제한사항
모든 Linux 플랫폼에 적용되는 제한사항(별도로 명시한 경우 제외)
Linux IA 32비트 제한사항
Linux PPC 32비트 및 64비트 제한사항
Linux PPC 32비트 제한사항
Linux zSeries 64비트 제한사항
Linux zSeries 32비트 및 64비트 제한사항
사용자 안내서에 대한 의견
주의사항
상표

개요

Linux용 Runtime Environment에는 Java Runtime Environment를 작성하고 Java 프로그램을 실행하는 데 필요한 클래스 서브세트가 포함되어 있습니다. 또한 JVM, Java 클래스 및 지원 파일이 포함되어 있습니다. Linux용 Runtime Environment에는 SDK에 있는 클래스 서브세트만 포함되어 있습니다.

| | |

규약

|

이 사용자 안내서에서는 SDK의 기본 설치 디렉토리를 |/opt/IBMJava2-142/라고 합니다. 아래 나열된 플랫폼에는 각각의 기본 설치 디렉토리가 |있습니다. /opt/IBMJava2-142/를 참조하여 플랫폼에 맞는 디렉토리를 사용하십시오. |

|

버전 호환성

일반적으로 Linux용 SDK 버전 1.1.8, 1.2.2 또는 1.3.1에서 실행되는 모든 애플릿 또는 응용프로그램은 이 버전에서 올바로 실행되어야 합니다. Sun의 Java 1.4.2 API에 종속되는 애플릿은 Java 1.4.2 API를 지원하는 브라우저에서만 작동합니다.

1.4.2에서 컴파일된 클래스가 Runtime Environment 1.4.0 이전 릴리스에서 작동하는지는 보장할 수 없습니다.

| | |

Linux PPC64 사용자 정보

|

Runtime Environment v1.4.2는 SLES 8에서 지원되지 않습니다. |SLES 8에서 SDK를 실행하려면 SDK v1.4.1 SR1을 사용하십시오.

Linux용 Runtime Environment에 포함된 파일

Linux용 Runtime Environment에는 런타임시 프로그램을 지원하는 데 필요한 클래스 파일 및 디버그할 수 없는 .so 파일이 있습니다. Linux용 Runtime Environment에는 애플릿 뷰어나 javac와 같은 개발 도구 또는 개발 시스템에만 관련된 클래스가 포함되어 있지 않습니다.

또한 Runtime Environment for Linux에 사용하도록 Java Communications API(Application Programming Interface) 패키지가 제공됩니다. (Linux IA 64비트 및 Linux zSeries 31비트 및 64비트의 경우 제외).

라이센스 계약

LICENSE_xx.html 파일에는 Linux용 Runtime Environment 소프트웨어에 대한 라이센스 계약이 포함되어 있습니다. (xx는 언어의 약어입니다.)

라이센스 계약을 보거나 인쇄하려면 웹 브라우저에서 파일을 여십시오.

JIT 컴파일러

JIT(just-in-time) 컴파일러(libjitc.so)는 실행 시 Java 응용프로그램 및 애플릿에서 자주 사용되는 바이트 코드 순서에 대해 시스템 코드를 동적으로 생성합니다.

Linux용 Runtime Environment에는 기본적으로 사용 가능한 JIT(libjitc.so)가 있습니다. Java 응용프로그램, 애플릿 또는 컴파일러에 문제점이 파급되는 것을 막기 위해 JIT를 사용 불가능 하도록 설정할 수 있습니다.

JIT를 사용 불가능하게 하려면 응용프로그램을 실행할 창의 쉘 프롬프트에서 다음을 입력하십시오.

    export JAVA_COMPILER=NONE

JIT를 사용 가능하게 하려면 쉘 프롬프트에서 다음을 입력하십시오.

    export JAVA_COMPILER=jitc

JIT의 사용 가능 여부를 확인하려면 쉘 프롬프트에서 다음을 입력하십시오.

    java -version

JIT가 사용되고 있으면 다음과 같은 메시지가 표시됩니다.

(JIT enabled: jitc)

JIT가 사용되고 있지 않으면 다음과 같은 메시지가 표시됩니다.

(JIT disabled)

Java Native Interface 및 Native Method Interface

JNI(Java Native Interface)는 Runtime Environment에 포함되어 있습니다. JNI 사용에 대해서는 Sun 웹 사이트 http://java.sun.com을 참조하십시오.

IBM은 이 릴리스에서 NMI(Native Method Interface)를 지원하지 않습니다. 응용프로그램에서 이 인터페이스를 사용하지 마십시오.

| | |

Red Hat Enterprise Linux (RHEL) 3에 설치

|

Runtime Environment는 공유 라이브러리 /usr/lib/libstdc++-libc6.2-2.so.3에 따릅니다. |해당 라이브러리는 RedHat Enterprise Linux (RHEL) |3.0에서 기본값으로 설치되지 않습니다.

|

해당 라이브러리를 포함하는 rpm은 compat-libstdc++-7.3-2.96.122.i386.rpm입니다. 라이브러리를 설치하려면 쉘 프롬프트에서 다음을 입력하십시오. |

|
rpm -ivh compat-libstdc++-7.3-2.96.122.i386.rpm
|

RHEL 3 설치 시 해당 라이브러리를 포함시키려면 다음을 수행하십시오. |

|
    |
  1. 패키지 기본값 화면이 표시되면 |설치할 패키지 세트 사용자 정의 옵션을 선택하십시오.
  2. |
  3. 패키지 그룹 선택 화면에서 개발 옵션 아래에 있는 레거시 소프트웨어 |개발을 선택하십시오.

Linux용 Runtime Environment 구성

Linux용 Runtime Environment를 설치한 후, 쉘 로그인 스크립트를 편집하여 PATH 명령문에 다음 디렉토리를 추가하십시오.

/opt/IBMJava2-142/jre/bin

Linux용 Runtime Environment를 다른 디렉토리에 설치한 경우, /opt/IBMJava2-142/를 Runtime Environment를 설치한 디렉토리로 대체하십시오.

주:
(Linux IA 32비트 중국어 사용자에 한해) RedHat Advanced Server의 글꼴 인코딩에서 불일치사항이 발생할 수 있으므로, 중국어를 기본 언어로 사용하는 환경에서 제품을 설치하는 경우에는 기본 언어를 영어로 설정하여 설치를 완료한 다음, 이를 중국어로 변경하는 것이 좋습니다. 그렇지 않으면 중국어 글꼴이 표시되지 않을 수도 있습니다.

Linux용 Runtime Environment 설치 제거

Runtime Environment를 제거하는 방법은 설치 가능한 RPM(Red Hat Package Manager) 패키지를 설치한 경우와 압축된 TAR(Tape Archive) 패키지를 설치한 경우에 따라 다릅니다. 지시사항은 설치 가능한 RPM 패키지 설치 제거 또는 압축된 TAR 패키지 설치 제거를 참조하십시오.


설치 가능한 RPM 패키지 설치 제거

설치 가능한 RPM 패키지를 설치한 경우 Linux용 Runtime Environment를 설치 제거하려면 다음을 수행하십시오.

  1. 쉘 스크립트에서 다음을 입력하십시오. 또는 kpackage나 yast2와 같은 그래픽 툴을 사용할 수 있습니다.
  2. PATH 명령문에서 Runtime Environment을 설치한 디렉토리를 제거하십시오
  3. (Linux IA 32비트에만 적용) Java Plug-in을 설치한 경우, 웹 브라우저 디렉토리에서 Java Plug-in 파일을 제거하십시오.

압축된 TAR 패키지 설치 제거

압축된 TAR 패키지를 설치한 경우 Linux용 Runtime Environment를 제거하려면 다음을 수행하십시오.

  1. Runtime Environment를 설치한 디렉토리에서 Runtime Environment 파일을 제거하십시오.
  2. PATH 명령문에서 Runtime Environment을 설치한 디렉토리를 제거하십시오.
  3. (Linux IA 32비트에만 적용) Java Plug-in을 설치한 경우, 웹 브라우저 디렉토리에서 Java Plug-in 파일을 제거하십시오.
| | |

JDBC/ODBC 브릿지 복원

|

IBM SDK, v1.4.0에서 제거되었던 JDBC/ODBC 브릿지가 |v1.4.2에서는 복원되었습니다.

Java 응용프로그램 실행

java 툴은 Java 응용프로그램을 실행합니다.

JVM은 부트스트랩 classpath, 설치된 확장자 및 사용자 classpath와 같은 세 가지 위치 세트에서 시작 클래스 및 사용되는 기타 클래스를 검색합니다. 클래스 이름 또는 JAR 파일 이름 다음의 인수가 기본 함수에 전달됩니다.

javaw 명령은 java와 동일합니다. 단, javaw에는 연관된 콘솔 창이 없습니다. 명령 프롬프트 창이 표시되지 않게 하려면 javaw를 사용하십시오. javaw 실행 프로그램은 실행에 실패할 경우 오류 정보가 있는 대화 상자를 표시합니다.

명령 요약

java 및 javaw 명령은 다음과 같은 구문을 갖습니다.

java [ options ] class [ arguments ... ]
java [ options ] -jar file.jar [ arguments ... ]
javaw [ options ] class [ arguments ... ]
javaw [ options ] -jar file.jar [ arguments ... ]

대괄호 내에 표시된 항목은 선택적입니다.

options
명령행 옵션
class
호출할 클래스의 이름
file.jar
호출할 jar 파일의 이름. 이는 반드시 -jar와 함께 사용됩니다.
argument
기본 함수에 전달되는 인수

-jar 옵션이 지정된 경우, 명명된 JAR 파일에는 응용프로그램에 대한 자원 파일과 클래스가 포함되고 시작 클래스는 Main-Class manifest 머리글로 표시됩니다.

옵션

실행 프로그램에는 현재의 Runtime Environment에서 지원되며 차후 릴리스에서도 지원될 표준 옵션 세트가 있습니다. 또한 비표준 옵션 세트도 있습니다.

표준 옵션

비표준 옵션

아래 나열된 -X 옵션은 사용 가능한 옵션의 서브세트입니다. 이것은 비표준 옵션으로 통지없이 변경될 수 있습니다.

java 명령의 글로벌화

java 명령 및 기타 java 실행 프로그램 명령(예: javaw)을 사용하면 클래스 이름을 현재 로케일의 문자 세트에 있는 Unicode 문자로 지정할 수 있습니다.

Java 이스케이프 순서를 사용하여 클래스 이름과 인수에 임의의 Unicode 문자를 지정할 수 있습니다. 이를 수행하려면 -Xargencoding을 지정해야 합니다. Unicode 문자를 지정하려면, \u#### 형식의 이스케이프 순서를 사용하십시오. 여기서 #는 16진 숫자(0-9, A-F)입니다.

클래스 이름과 명령 인수를 UTF8 또는 ISO8859_1 인코딩으로 지정하려면 -Xargencoding:utf8 및 -Xargencoding:latin을 사용하십시오.

Runtime Environment에서 영어 이외의 로케일을 사용하는 경우 java 및 javaw 명령은 변환된 출력 메시지를 제공합니다. 이들 메시지는 1.3.1 버전의 메시지와는 다르며 Java가 실행되는 로케일에 따라서도 다릅니다. java에 의해 리턴되는 자세한 오류 설명 및 기타 디버그 정보는 영어로 되어 있습니다. 초기화 중 리턴되는 디버그 정보는 대괄호로 표시됩니다.

Classpath에 대한 작업

Runtime Environment에서는 전체 경로와 .class 확장자를 포함하는 완전한 파일 이름으로 클래스 경로를 지정할 수 있습니다. 이전 버전의 SDK에서는 CLASSPATH와 관련된 클래스만 지정할 수 있었으며 .class 확장자는 사용할 수 없었습니다. 완전한 파일 이름을 사용할 수 있으므로 데스크탑이나 파일 실행 프로그램에서 Java 응용프로그램을 실행할 수 있습니다. 경로 및 확장자와 함께 .class 파일을 지정하는 경우 지정되는 경로는 CLASSPATH에 추가됩니다. 예를 들어, java ~/myapp/thisapp.class 명령은 java -classpath ~/myapp thisapp를 지정하는 것과 동일합니다.

| | |

대형 페이지 메모리 할당 구성

|

대형 페이지는 주로 메모리를 대량으로 할당하고 메모리에 자주 액세스하는 |응용프로그램의 성능을 향상시키기 위해 사용합니다. |주로 TLB(Translation Lookaside Buffer)의 실패를 줄임으로써 대형 페이지의 |성능을 향상시킬 수 있습니다. 이를 위해 TLB는 가상 메모리 범위를 더 넓게 |맵핑합니다.

|

대형 페이지 메모리 할당을 구성하려면 먼저, 실행 중인 커널이 대형 페이지를 지원하는지 |확인하십시오. /proc/meminfo 파일에 다음 행이 포함되어 있는지 |확인하십시오.

|
HugePages_Total:     4
|HugePages_Free:      4
|Hugepagesize:     4096 kB

이들 필드의 값은 시스템에 따라 다릅니다. |커널이 대형 페이지를 지원하지 않는 경우 대형 페이지를 지원하는 새 커널을 |컴파일해야 합니다.

|

대형 페이지에 할당할 수 있는 메모리 용량은 |HugePages_Free * Hugepagesize의 값으로 구할 수 있습니다. 시스템 관리자는 |Java 힙 요구사항을 준수할 수 있도록 시스템의 대형 페이지 수를 구성해야 |합니다. 시스템 관리자는 /proc/sys/vm/nr_hugepages 파일을 편집하여 |대형 페이지의 수를 구성할 수 있습니다.

|

사용 가능한 여분의 대형 페이지가 시스템에 적당하게 있는 경우 |대형 페이지 메모리를 할당하는 shmget() 호출에 실패할 수 있습니다. 이는 대형 페이지가 |인접하지 않기 때문에 발생합니다. 이러한 실패를 피하려면 |시스템 관리자는 시스템 bootup에서 hugepages=<n> 옵션을 지정해야 |합니다(나중에 /proc으로 지정하는 대신).

|

shmmax를 사용하는 shmget()은 대형 페이지 메모리를 할당합니다. shmmax 값을 수정하려면 |/proc/sys/kernel/shmmax 파일을 편집하십시오.

|

shmget()은 루트로 실행 중인 경우에만 성공합니다. 대형 페이지를 |사용하려면 Java를 루트로 실행하거나 Java 실행 파일의 suid bit를 설정할 수 있습니다.

bootclasspath에 대한 작업

Java 응용프로그램 실행에 설명된 -D 옵션을 사용하여 시스템 특성ibm.jvm.bootclasspath을 설정할 수 있습니다. 이 특성값은 추가 검색 경로로 사용되며, -Xbootclasspath/p:에 의해 정의된 값과 부트스트랩 클래스 경로 사이에 삽입됩니다. 부트스트랩 클래스 경로는 기본값이거나 -Xbootclasspath: 옵션을 사용하여 정의된 경로입니다.

-Xbootclasspath: 또는 -Xbootclasspath/p: 옵션을 사용하여 core.jar, graphics.jar, server.jar, security.jar, xml.jar, tools.jar 또는 charsets.jar의 클래스를 대체하는 응용프로그램은 전개하지 마십시오. 이런 전개는 Java 2 Runtime Environment 2진 코드 라이센스를 위반하는 것입니다.

가비지 콜렉션 정책 지정

-Xgcpolicy JVM 런타임 옵션은 가비지 콜렉션 정책을 지정합니다.

-Xgcpolicy는 값으로 optthruput(기본값) 또는 optavgpause를 가집니다. 이 옵션은 가비지 콜렉터의 작동을 제어하여 응용프로그램과 전체 시스템의 처리량 및 가비지 콜렉션에 의해 발생되는 일시정지 시간 사이의 균형을 맞춥니다.

옵션 및 해당 값의 형식은 다음과 같습니다.

-Xgcpolicy:optthruput

-Xgcpolicy:optavgpause

일시정지 시간

응용프로그램의 오브젝트 작성 시도가 힙 내의 사용 가능한 공간에서 즉시 충족되지 않는 경우, 가비지 콜렉터는 참조되지 않은 오브젝트(가비지)를 식별하고 삭제하여 즉각적이며 계속적인 할당 요청을 신속하게 충족시킬 수 있는 상태로 힙을 되돌립니다. 이러한 가비지 콜렉션 주기로 인해 때때로 응용프로그램 코드의 실행에 있어서 예상치 않았던 일시정지가 발생하기도 합니다. 응용프로그램의 크기와 복잡도가 증가함에 따라 힙도 더 커지게 되므로, 이러한 가비지 콜렉션 일시정지 시간도 크기 및 중요성이 증가하는 경향이 있습니다. 가비지 콜렉션 기본값인 optthruput은 응용프로그램에 매우 많은 처리량을 부과하나 그로 인해 때때로 일시정지가 발생할 수 있으며 일시정지 시간은 힙의 크기와 가비지의 양에 따라 밀리초에서 몇 초에 이르기까지 다양합니다.

일시정지 시간 감소

optavgpause 옵션은 가비지 콜렉션 일시정지 길이에 대한 힙 크기 증가의 영향을 제한함과 동시에 이들 가비지 콜렉션 일시정지의 시간을 상당히 줄여줍니다. 이 옵션은 특히 대형 힙으로 이루어진 구성과 관련이 있습니다. 일부 가비지 콜렉션 활동을 정상 프로그램 실행과 동시에 실행하면 일시정지 시간을 줄일 수 있습니다. 일시정지 시간을 줄이면, 응용프로그램 처리량이 일부 감소될 수 있으며 이는 응용프로그램에 따라 다릅니다.

힙이 가득 찬 상태의 환경

Java 힙이 거의 가득 차게 되고 재생될 수 있는 가비지가 거의 없는 경우, 즉시 사용 가능한 공간이 없으므로 새 오브젝트에 대한 요청이 신속히 충족되지 않을 수 있습니다. 힙이 거의 가득 찬 용량으로 조작될 경우 위의 옵션 중에서 어느 옵션이 사용되는지에 관계없이 응용프로그램 성능이 저하될 수 있습니다. 또한 더 많은 힙 공간 요청이 계속 작성되면 응용프로그램에 OutofMemory 예외가 발생하게 되며, 이 예외를 찾아 처리하지 못하면 JVM이 종료될 수 있습니다. 이 때 JVM은 두 개의 진단 파일인 Heapdump 및 Javadump를 생성합니다. 이에 대해서는 Java 1.4.2 진단 안내서에 자세히 설명되어 있으며 이를 참조하여 Java 힙이 가득 차게 되는 원인을 판단할 수 있습니다. 진단 안내서는 http://www-106.ibm.com/developerworks/java/jdk/diagnosis/에 있는 개발자 문서에 있습니다. 이러한 조건에서는 -Xmx 옵션을 사용하여 힙 크기를 늘리거나 사용 중인 응용프로그램 오브젝트의 수를 줄이십시오.

가비지 콜렉션에 관한 추가 정보

가비지 콜렉션에 관한 자세한 정보는 다음을 참조하십시오.

http://www.ibm.com/developerworks/ibm/library/i-garbage1/

http://www.ibm.com/developerworks/ibm/library/i-garbage2/

http://www.ibm.com/developerworks/ibm/library/i-garbage3/

JVM의 신호 처리 방법

JVM과 관련된 신호가 오면, 신호 핸들러가 호출됩니다. 이 신호 핸들러는 Java 또는 Java 이외의 스레드에 대해 호출되었는지를 판별합니다. 신호가 Java 스레드에 대한 것이면, JVM은 신호 처리를 제어할 수 있습니다. 신호가 Java 이외의 스레드에 대한 것이며 JVM를 설치한 응용프로그램에 신호에 대한 자체 핸들러가 이미 설치되어 있는 경우에는 해당 핸들러가 신호를 제어합니다. 그렇지 않으면, 이 신호는 무시됩니다. (신호의 기본 조치 여부와 상관없습니다.)

예외 및 오류 신호의 경우, JVM은 다음을 수행합니다.

상기 후크를 지정하는 설치 프로그램을 작성하는 방법에 대한 정보는 http://www-106.ibm.com/developerworks/java/library/i-signalhandling/을 참조하십시오. 이 항목은 Java V1.3.1용으로 작성되었으나 후속 버전에도 적용됩니다.

인터럽트 신호의 경우, JVM은 제어된 시스템 종료 순서로 들어갑니다. 이 때, 다음과 같은 정상 종료로 처리됩니다.

이 시스템 종료는 System.exit() Java 메소드 호출에 의해 초기화되는 시스템 종료와 동일합니다.

JVM에서 사용되는 기타 신호는 내부 제어용이며 JVM을 종료시키지 않습니다. 관련된 제어 신호는 SIGQUIT 뿐이며 이는 Javadump를 생성합니다.

JVM에서 사용되는 신호

아래의 표 1에서는 JVM에서 사용되는 신호를 보여줍니다. 신호는 다음과 같이 유형 또는 용도별로 분류되어 있습니다.

표 1. JVM에서 사용되는 신호
신호 이름 신호 유형 설명 -Xrs에 의해 사용 불가능
SIGSEGV 예외 잘못된 메모리 액세스(액세스할 수 없는 메모리에 쓰기) 아니오
SIGILL 예외 잘못된 명령어(알수 없는 시스템 명령을 호출하려는 시도) 아니오
SIGFPE 예외 부동 소수점 예외(0으로 나누기) 아니오
SIGBUS 예외 버스 오류(존재하지 않는 메모리 위치를 주소 지정하려는 시도) 예
SIGSYS 예외 잘못된 시스템 호출 발행 예
SIGXCPU 예외 CPU 시간 한계 초과(실행 시간 초과) 예
SIGXFSZ 예외 파일 시스템 한계 초과 예
SIGABRT 오류 비정상 종료. JVM 결함을 발견할 때마다 JVM이 이 신호를 일으킵니다. 예
SIGINT 인터럽트 대화식 주의(CTRL-C). JVM이 정상적으로 종료합니다. 예
SIGTERM 인터럽트 종료 요청. JVM이 정상 종료합니다. 예
SIGHUP 인터럽트 끊기. JVM이 정상 종료합니다. 예
SIGUSR1 제어 사용자 정의. 내부 제어 목적으로 일부 JVM에서 사용됩니다. 아니오
SIGUSR2 제어 사용자 정의. 내부 제어 목적으로 일부 JVM에서 사용됩니다. 아니오
SIGQUIT 제어 단말기에 대한 종료 신호. JVM은 이 신호를 사용하여 Javadump를 가져옵니다. 예
SIGTRAP 제어 dbx 또는 ptrace에서 사용하기 위한 내부 제어. 내부 제어 목적으로 일부 JVM에서 사용됩니다. 예
SIGPIPE 제어 읽고 있지 않는 파이프에 쓰기. JVM은 이 신호를 무시합니다. 아니오

JVM이 대부분의 신호를 처리하지 않도록 하려면 -Xrs(신호 사용 단축) 옵션을 사용하십시오. 자세한 사항은 http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/java.html에 있는 Sun의 Java 응용프로그램 실행 프로그램 페이지를 참조하십시오.

신호 1(SIGHUP), 2(SIGINT), 4(SIGILL), 6(SIGABRT), 7(SIGEMT), 8(SIGFPE), 10(SIGBUS), 11(SIGSEGV), 12(SIGSYS), 15(SIGTERM) 및 24(SIGXCPU)는 JVM을 시스템 종료하게 만듭니다. 따라서 응용프로그램 신호 핸들러는 더 이상 JVM 서비스를 필요로 하지 않는 한, 복구하려는 시도를 하지 말아야 합니다.

원시 코드 드라이버를 신호 체인 라이브러리로 링크

Runtime Environment에는 신호 체인 기능이 포함되어 있습니다. 신호 체인 기능으로 JVM은 자체 신호 핸들러를 설치하는 원시 코드와 보다 효율적으로 공동 조작할 수 있습니다.

신호 체인 기능을 사용하면 응용프로그램은 공유 라이브러리 libjsig.so를 시스템 라이브러리 앞에 링크하고 로드할 수 있습니다. libjsig.so 라이브러리는 signal(), sigset() 및 sigaction() 등의 호출을 차단하여 해당 핸들러가 JVM의 신호 핸들러를 대체하지 않도록 합니다. 대신, 이들 호출은 새 신호 핸들러를 저장하거나 이를 JVM이 설치된 핸들러 뒤에 "체인"합니다. 나중에 이들 신호 중 하나가 발생되고 JVM을 대상으로 하지 않은 경우, 사전 설치된 핸들러가 호출됩니다.

libjsig.so를 사용하려면 다음과 같이 하십시오.

sigaction()을 사용하는 신호 핸들러를 설치할 경우, JVM이 이 신호를 사용할 때 일부 sa_flags가 관찰되지 않습니다. 이들은 다음과 같습니다.

libjsig.so 라이브러리도 JVM 신호 핸들러를 응용프로그램에서 숨깁니다. 따라서 JVM이 시작된 후에 작성된 signal(), sigset() 및 sigaction()과 같은 호출은 더 이상 JVM 신호 핸들러에 대한 참조를 리턴하지 않지만, 대신 JVM이 시작되기 전에 설치된 모든 핸들러를 리턴합니다.

| | |

RMI용 연결 핸들러 풀 구현

|

기본적으로 RMI 연결 핸들러의 스레드 풀링은 사용할 수 |없습니다.

|

RMI TCPTransport 레벨에서 구현된 연결 풀링을 사용 가능하게 하려면 |다음 옵션을 설정하십시오. |

|
-Dsun.rmi.transport.tcp.connectionPool=true (또는 null이 아닌 값)
|

이 버전의 Runtime Environment에는 연결 풀의 스레드 수를 제한할 수 있는 |설정이 없습니다.

IBM 빌드 및 버전 번호 찾기

IBM 빌드 및 버전 번호를 알려면 쉘 프롬프트에서 다음을 입력하십시오.

java -version

(Linux IA 32비트 전용) Java Plug-in 사용

Java Plug-in은 웹 브라우저 플러그인입니다. Java Plug-in을 사용하는 경우, 웹 브라우저의 기본 JVM을 생략하고 대신 Runtime Environment를 사용하여 브라우저에서 애플릿 또는 Bean을 실행할 수 있습니다.

Java Plug-in은 Sun 웹 사이트 http://java.sun.com/j2se/1.4.2/docs/guide/plugin/developer_guide/에 설명되어 있습니다.

Java Plug-in은 SDK의 이번 릴리스에서 인쇄를 지원하지 않습니다.

Java Plug-in은 해당 배포판에서 명시한 대로 Netscape 4, Netscape 6 및 Mozilla에서 지원됩니다.

Netscape 6 및 Mozilla용 Java Plug-in 설치 및 구성

Netscape 6 또는 Mozilla용 Java Plug-in을 설치하여 구성하려면 기호 링크를 라이브러리 파일 /opt/IBMJava2-142/jre/bin/libjavaplugin_oji.so에서 사용자 브라우저의 plugins 디렉토리(/brower-install-path/plugins)로 작성하십시오.

모든 사용자가 Java Plug-in을 사용할 수 있도록 하려면 다음을 수행하십시오.

  1. root로 로그인하십시오.
  2. 라이브러리 파일 /opt/IBMJava2-142/jre/bin/libjavaplugin_oji.so에 대한 기호 링크를 Mozilla 또는 Netscape plugin 디렉토리(일부 다른 경우도 있지만 일반적으로 /usr/local/mozilla/plugins/(또는 netscape))에 놓으십시오.
    ln -s /opt/IBMJava2-142/jre/bin/libjavaplugin_oji.so \
    /usr/local/mozilla/plugins/
주:
libjavaplugin_oji.so는 복사되기 보다는 기호로 링크되어야 합니다. 그렇지 않으면, JVM의 위치를 찾을 수 없습니다.

Netscape 4용 Java Plug-in 설치 및 구성

Netscape 4용 Java Plug-in을 설치하여 구성하려면 기호 링크를 라이브러리 파일 /opt/IBMJava2-142/jre/bin/javaplugin.so에서 사용자 브라우저의 plugins 디렉토리로(/brower-install-path/plugins) 작성하십시오.

현재 사용자가 Java Plug-in을 사용할 수 있도록 하려면 다음을 수행하십시오.

  1. plugins 디렉토리가 없는 경우 $HOME/.netscape 디렉토리 아래에 plugins 디렉토리를 작성하십시오.
  2. 라이브러리 파일 /opt/IBMJava2-142/jre/bin/javaplugin.so로부터 /$HOME/.netscape/plugins로 기호 링크를 작성하십시오.

모든 사용자가 Java Plug-in을 사용할 수 있도록 하려면 다음을 수행하십시오.

  1. root로 로그인하십시오.
  2. 라이브러리 파일 /opt/IBMJava2-142/jre/bin/javaplugin.so에 대한 기호 링크를 plugin 디렉토리(일부 다른 경우도 있지만 일반적으로 /usr/local/netscape/plugins/)에 놓으십시오.
    ln -s /opt/IBMJava2-142/jre/bin/javaplugin.so \
       /usr/local/netscape/plugins/

주:
javaplugin.so는 복사되기 보다는 기호로 링크되어야 합니다. 그렇지 않으면 JVM의 위치를 찾을 수 없습니다.

gcc3.2.x 컴파일 Mozilla 브라우저에 Java Plug-in 사용

gcc3.2.x 컴파일 Mozilla 브라우저(SLES8, Suse8.1)가 제공되는 배포판을 사용하는 경우에는 Linux용 IBM SDK, v1.4.2와 함께 제공되는 gcc3 컴파일 플러그인 라이브러리 (libjavaplugin_ojigcc3.so and libjavaplugin_jnigcc3.so)를 사용해야 합니다. 이들 라이브러리를 사용하려면 다음과 같이 <mozilla_installation_dir>/plugins 디렉토리 아래의 libjavaplugin_ojigcc3.so에 대한 기호 링크를 작성해야 합니다.

ln -s <sdkdir>/jre/bin/libjavaplugin_ojigcc3.so libjavaplugin_ojigcc3.so

DBCS 매개변수 사용

Java Plug-in은 <APPLET>, <OBJECT> 및 <EMBED>에 대해 2바이트 문자(예: 대만어 BIG-5, 한국어, 일본어)를 매개변수로 지원합니다. Java Plug-in이 매개변수를 구문 분석할 수 있도록 사용 중인 HTML 문서에 대해 정확한 문자 인코딩을 선택해야 합니다. 다음과 같이 <HEAD> 섹션에 <META> 태그를 사용하여 HTML 문서에 대한 문자 인코딩을 지정하십시오.

<meta http-equiv="Content-Type" content="text/html; charset=big5">

이 예제에서는 중국어 BIG-5 문자 인코딩을 사용하여 HTML 파일 사용을 구문 분석하도록 브라우저에 지시합니다. 모든 매개변수가 Java Plug-in에 정확하게 전달됩니다. 그러나 일부 이전 버전의 브라우저는 이 태그를 정확하게 이해하지 못할 수도 있습니다. 이 경우, 브라우저가 이 태그를 강제로 무시하도록 한 후 인코딩을 수동으로 변경해야 하는 수가 있습니다.

다음과 같이 하여 HTML 파일의 구문 분석에 사용할 인코딩을 지정할 수 있습니다.

(Linux IA 32비트 전용)Web Start 사용

Java Web Start는 Java 기술에 기반한 응용프로그램을 전개하는 방법입니다. Web Start는 컴퓨터와 인터넷을 연결해 주고 이로써 사용자는 웹에서 바로 응용프로그램을 실행 및 관리할 수 있습니다. Java Web Start는 한 번의 클릭으로 응용프로그램을 시작할 수 있도록 하며 항상 최신 버전을 실행하도록 하여 설치 또는 업그레이드 프로시저가 필요없도록 합니다. 종종 웹을 통해 소프트웨어를 분배하기 위해서는, 웹에서 설치 프로그램을 찾아 이를 다운로드하여 배치한 후 실행해야 하는 경우가 있습니다. 설치 프로그램이 실행된 후 설치 디렉토리와 설치 옵션(예: 전체, 일반 또는 최소)을 선택하라는 프롬프트가 표시됩니다. 이는 소프트웨어의 각 새 버전에 대해 반복해야 하는 시간 소비가 많고 복잡한 태스크입니다.

이와 반대로 웹 전개 응용프로그램(예: HTML 기반 전자 우편 클라이언트 및 달력)은 설치와 사용이 간단합니다. 웹 브라우저가 프로세스를 자동으로 처리합니다. 복잡한 다운로드, 설정 및 구성 단계가 없고 최신 버전을 실행하도록 보장합니다. Java Web Start는 완전한 기능을 갖춘 응용프로그램에 동일한 이점을 제공합니다.

Web Start에 대한 자세한 정보는 http://java.sun.com/products/javawebstart를 참조하고 추가 문서에 대해서는 http://java.sun.com/j2se/1.4.2/docs/guide/jws/index.html을 참조하십시오.

Web Start 설치

Web Start 설치 스크립트는 Java용 JRE V1.4.2와 함께 설치됩니다.

이 스크립트는 /opt/IBMJava2-142/jre/bin/webstart_install_sdk.sh입니다. Web Start를 사용하려면 이 스크립트를 실행하십시오. 현재 작업 디렉토리를 Web Start를 설치하려는 위치로 설정하십시오. 설치 프로세스 중 현재 작업 디렉토리에 서브디렉토리 javaws가 작성됩니다.

설치 프로세스에서는 Mozilla 및 기타 브라우저에서 사용되는 MIME 유형도 갱신합니다.

다음 세 가지 방법으로 Web Start를 호출할 수 있습니다.

  1. .jnlp 파일에 대한 참조인 웹 페이지에서 링크를 선택하십시오.
  2. 위에서 작성한 javaws 디렉토리에서 javaws를 시작하여 응용프로그램을 선택할 수 있는 Web Start 대화 상자를 시작하십시오.
  3. 쉘 스크립트에서 javaws <URL>을 입력하십시오. 여기서 <URL>은 .jnlp 파일의 위치입니다.

이러한 조치로 Web Start는 선택된 응용프로그램을 시작합니다. 응용프로그램이 처음 사용되는 경우 응용프로그램이 다운로드됩니다. 나중에 호출될 때, 원래 웹 사이트를 점검하여 갱신사항이 사용 가능한지 여부를 확인합니다. Web Start는 응용프로그램이 시작되기 전에 이들 갱신사항을 다운로드합니다.

jnlp에 오류가 발생하면(예: 잘못된 태그 이름), Web Start는 오류 메시지를 표시하지 않고 중단됩니다.

floating 스택에 대한 작업

floating이 아닌 스택 Linux 시스템에서는 -Xss의 설정에 관계없이 각 스레드에 대해 최소한의 고유 스택 크기인 256KB가 제공됩니다. floating 스택 Linux 시스템에서는 -Xss 값이 주어집니다. 따라서 floating이 아닌 스택 Linux 시스템에서 이주하는 경우, -Xss 값이 충분히 큰지 그리고 256KB의 최소 스택에 의존하고 있지는 않은지 확인해야 합니다.

(Linux IA 32비트에만 적용) 특정 Linux 배포본(예: Red Hat)에서는 'floating 스택'이라는 GLIBC 기능을 사용할 수 있습니다. Linux 커널 제한사항 때문에 JVM은 커넬 레벨이 2.4.10 미만인 경우 사용 가능하게 된 floating 스택이 SMP 하드웨어에서는 실행되지 않습니다. 이러한 환경에서는 JVM 또는 JVM을 시작하는 임의의 응용프로그램이 시작되기 전에 반드시 floating 스택을 사용 불가능하도록 해야 합니다. Red Hat에서 환경 변수를 내보내기하여 floating 스택을 사용 불가능하게 하려면 다음 명령을 사용하십시오.

export LD_ASSUME_KERNEL=2.2.5

DBCS 언어에서 입력 방법 전환

2바이트 문자 세트(DBCS) 시스템에서 입력 방법을 전환하려는 경우, IBMJAVA_INPUTMETHOD_SWITCHKEY 및 IBMJAVA_INPUTMETHOD_SWITCHKEY_MODIFIERS 환경 변수 대신 java.util.prefs.Preferences 클래스를 사용해야 합니다. 자세한 내용은 Sun의 입력 방법 프레임워크 스펙을 참조하십시오.

사용자 시스템에 응용프로그램 설치

제품을 개발하고 운송할 준비가 되면, 제품을 사용자 시스템에 설치하고 사용자 소프트웨어를 지원하도록 사용자 시스템과 Runtime Environment를 구성할 필요가 있습니다.

Linux용 Runtime Environment를 사용하는 경우, 사용자 설치 프로시저가 기존의 설치를 대체하지 않도록 확인해야 합니다(기존 Linux용 Runtime Environment가 이전 버전인 경우는 제외).

Linux용 Runtime Environment를 재분배하려면 Linux용 Runtime Environment를 사용자의 시스템에 설치한 후, 필요한 파일을 사용자의 설치 세트로 복사하십시오. 이 방법을 선택하면, Linux용 Runtime Environment와 함께 제공된 모든 파일을 반드시 포함해야 합니다. Linux용 Runtime Environment 소프트웨어는 모든 파일이 포함된 경우에만 재분배될 수 있습니다. 사실상, 응용프로그램을 운송할 때 응용프로그램은 자체의 고유 Linux용 Runtime Environment 사본을 가지고 있습니다.

반드시 재분배되어야 하는 파일에 대한 상세한 정보는 이 제품에 함께 들어 있는 라이센스 계약을 참조하십시오.

알려진 제한사항

다음 절에서는 Linux용 Runtime Environment의 알려진 제한사항에 대해 설명합니다.

모든 Linux 플랫폼에 적용되는 제한사항(별도로 명시한 경우 제외)

Linux IA 32비트 제한사항

Linux PPC 32비트 및 64비트 제한사항

Linux PPC 32비트 제한사항

Linux zSeries 64비트 제한사항

다음 제한사항은 Linux zSeries 64비트의 중국어, 대만어 및 한국어 사용자에게 적용됩니다.

Linux zSeries 32비트 및 64비트 제한사항

사용자 안내서에 대한 의견

사용자 안내서에 대한 고객의 유용한 정보에 대해서 다음과 같은 방법으로 의견을 받고 싶습니다. 이러한 채널은 기술적 질문에 대해 응답하기 위한 것은 아니며 문서에 대한 의견을 듣기 위한 것입니다. 여러분의 의견을 보내주십시오.

작은 글자 부분. IBM에 메시지를 보내는 경우 IBM은 질문, 의견, 제안과 같은 피드백 데이터 등 메시지에 포함된 모든 정보를 기밀이 아닌 것으로 간주하여 이러한 정보와 관련하여서는 아무 책임을 지지 않으며 이 정보를 제한 없이 복제, 사용, 발표 및 타인에게 배포할 수 있습니다. 나아가 IBM은 본 정보와 연관된 제품의 개발, 제조, 마케팅을 포함하여(단, 이에 한하지 않음) 어떠한 목적으로도 본 정보에 포함된 아이디어, 개념, 노하우 또는 기술을 제한없이 사용할 수 있습니다.

주의사항

이 정보는 미국에서 제공되는 제품 및 서비스용으로 작성된 것입니다. IBM은 다른 국가에서 이 자료에 기술된 제품, 서비스 또는 기능을 제공하지 않을 수도 있습니다. 현재 사용할 수 있는 제품 및 서비스에 대한 정보는 한국 IBM 담당자에게 문의하십시오. 이 책에서 IBM 제품, 프로그램 또는 서비스를 언급하는 것이 해당 IBM 제품, 프로그램 또는 서비스만을 사용할 수 있다는 것을 의미하지는 않습니다. IBM의 지적 재산권을 침해하지 않는 한, 기능상으로 동등한 제품, 프로그램 또는 서비스를 대신 사용할 수 있습니다. 그러나 비IBM 제품, 프로그램 또는 서비스의 운용에 대한 평가 및 검증은 사용자의 책임입니다.

IBM은 이 책에서 다루고 있는 특정 내용에 대해 특허를 보유하고 있거나 현재 특허 출원 중일 수 있습니다. 이 책을 제공한다고 해서 특허에 대한 라이센스까지 부여하는 것은 아닙니다. 라이센스에 대한 의문사항은 다음으로 문의하십시오.

2바이트(DBCS) 정보에 관한 라이센스 문의는 한국 IBM 고객만족센터에 문의하거나 다음 주소로 서면 문의하시기 바랍니다

다음 단락은 현지법과 상충하는 영국이나 기타 국가에서는 적용되지 않습니다.

IBM은 타인의 권리 비침해, 상품성 및 특정 목적에의 적합성에 대한 묵시적 보증을 포함하여(단, 이에 한하지 않음) 묵시적이든 명시적이든 어떠한 종류의 보증없이 이 책을 "현상태대로" 제공합니다. 일부 국가에서는 특정 거래에서 명시적 또는 묵시적 보증의 면책사항을 허용하지 않으므로, 이 사항이 적용되지 않을 수도 있습니다.

이 정보에는 기술적으로 부정확한 내용이나 인쇄상의 오류가 있을 수 있습니다. 이 정보는 주기적으로 변경되며, 변경사항은 최신판에 통합됩니다. IBM은 이 정보에 기술된 제품 및(또는) 프로그램을 사전 통지없이 언제든지 개선 및(또는) 변경할 수 있습니다.

이 정보에서 언급되는 비IBM의 웹 사이트는 단지 편의상 제공된 것으로, 어떤 방식으로든 이들 웹 사이트를 옹호하고자 하는 것은 아닙니다. 해당 웹 사이트의 자료는 본 IBM 제품 자료의 일부가 아니므로 해당 웹 사이트 사용으로 인한 위험은 사용자 본인이 감수해야 합니다.

IBM은 귀하의 권리를 침해하지 않는 범위 내에서 적절하다고 생각하는 방식으로 귀하가 제공한 정보를 사용하거나 배포할 수 있습니다.

(i) 독립적으로 작성된 프로그램과 기타 프로그램(본 프로그램 포함)간의 정보 교환 및 (ii) 교환된 정보의 상호 이용을 목적으로 정보를 원하는 프로그램 라이센스 사용자는 다음 주소로 문의하십시오.

이러한 정보는 해당 조건(예를 들어, 사용료 지불 등)에 따라 사용할 수 있습니다.

이 정보에 기술된 라이센스가 있는 프로그램 및 이 프로그램에 대해 사용 가능한 모든 라이센스가 있는 자료는 IBM이 IBM 기본 계약, IBM 프로그램 라이센스 계약(IPLA) 또는 이와 동등한 계약에 따라 제공한 것입니다.

본 문서에 포함된 모든 성능 데이터는 제한된 환경에서 산출된 것입니다. 따라서 다른 운영 환경에서 얻어진 결과는 상당히 다를 수 있습니다. 일부 성능은 개발 레벨 상태의 시스템에서 측정되었을 수 있으므로 이러한 측정치가 일반적으로 사용되고 있는 시스템에서도 동일하게 나타날 것이라고는 보증할 수 없습니다. 또한, 일부 성능은 추정을 통해 추측되었을 수도 있으므로 실제 결과는 다를 수 있습니다. 이 책의 사용자는 해당 데이터를 사용자의 특정 환경에서 검증해야 합니다.

비IBM 제품에 관한 정보는 해당 제품의 공급업체, 공개 자료 또는 다른 기타 범용 소스로부터 얻은 것입니다. IBM에서는 이러한 비IBM 제품을 테스트하지 않았으므로, 이들 제품과 관련된 성능의 정확성, 호환성 또는 기타 주장에 대해서는 확신할 수 없습니다. 비IBM 제품의 성능에 대한 의문사항은 해당 제품의 공급업체에 문의하십시오.

상표

IBM은 미국 또는 기타 국가에서 사용되는 International Business Machines Corporation의 상표입니다.

IBM, iSeries, pSeries 및 zSeries는 미국 또는 기타 국가에서 사용되는 IBM Corporation의 상표 또는 등록상표입니다.

Java 및 모든 Java 기반 상표와 로고는 미국 또는 기타 국가에서 Sun Microsystems, Inc.의 상표 또는 등록상표입니다.

Intel, Intel Inside(로고), MMX 및 Pentium은 미국 또는 기타 국가에서 사용되는 Intel Corporation의 상표입니다.

기타 회사, 제품 및 서비스 이름은 타사의 상표 또는 서비스표입니다.

이 제품에는 Apache Software Foundation http://www.apache.org/에서 개발한 소프트웨어가 들어 있습니다.