Java/ko

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Java and the translation is 20% complete.
Outdated translations are marked like this.

이 안내서는 독자 여러분께 자바 언어를 소개하고 젠투 리눅스에서 자바를 활용하는 방법을 설명합니다.

자바란 무엇인가요?

간단히 살펴보기

자바는 썬 마이크로시스템즈의 엔지니어가 개발한 프로그래밍 언어입니다. 언어는 객체지향이며 각각의 플랫폼에서 코드를 다시 컴파일하지 않아도 여러 플랫폼에서 동작하도록 설계했습니다. 비록 자바를 네이티브 프로그램처럼 컴파일 할 수 있지만 대부분의 자바 배포 프로그램은, 가비지 콜렉션과 같은 기능을 붙여가며 이식성을 부여할 수 있습니다. 플랫폼은 독립적으로 자바 컴파일러가 운영체제가 아닌 JRE(자바 런타임 환경)에서 실행할 "자바 바이트 코드"라고 하는 중간 형태의 자바 코드로 컴파일 할 수 있습니다.

자바 바이트 코드를 실행하려면 JRE(자바 런타임 환경)을 설치해야합니다. JRE는 핵심 라이브러리, 플랫폼과 별개로 동작하는 자바 가상 머신, 브라우저 플러그인, 등을 제공합니다. JDK(자바 개발 키트)는 바이트 코드 컴파일러 및 디버거와 같은 프로그래밍 도구를 추가합니다.

JVM languages

The Java virtual machine is not used exclusively by Java programming language. Multiple programming languages use the Java platform and run on the JVM. Examples of such include: Clojure, Apache Groovy, Kotlin or Scala.

가상 머신 설치

선택

젠투는 다양한 런타임 환경(JRE)과 개발 키트(JDK)를 제공합니다. 현재 선택할 수 있는 방안은 다음과 같습니다:

제작 주체 JDK JRE
The IcedTea Open Java SE (formerly icedtea6-bin) dev-java/icedtea-bin
Oracle's Java 7 SE dev-java/oracle-jdk-bin dev-java/oracle-jre-bin
Sun's Java 6 SE (오라클이 썬을 인수한 후 가려서 비활성화) dev-java/sun-jdk dev-java/sun-jre-bin
The IBM Java SE dev-java/ibm-jdk-bin dev-java/ibm-jre-bin

| The IcedTea Open Java SE (formerly icedtea6-bin) | dev-java/icedtea and dev-java/icedtea-bin |-

|}

JRE/JDK 설치

기본 JDK를 설치하려면 emerge virtual/jdk를 실행하십시오. 또는 프로파일의 기본 JRE를 설치하려면 emerge virtual/jre를 실행하십시오.

root #emerge --ask --oneshot virtual/jdk

To install the profile's default JRE run:

root #emerge --ask --oneshot virtual/jre
참고
JDK에는 "JRE가 들어있음을 인지하십시오. JDK를 이머지하면 JRE 설치는 필요 없습니다.

헤드리스 JRE 설정

때로는 Java의 모든 기능을 활용하는 목적으로 완전한 JRE 가 필요하지 않을 때도 있습니다. 서버에서 Java를 활용할 때는 GUI, 그래픽, 음성, 프린터 관련 기능을 사용하지 않습니다. 단순화한(때로는 헤드리스로 참조하는) JRE를 설치하려면 USE 플래그 3개의 선택을 해제하십시오.

파일 /etc/portage/package.use요구 USE 플래그 변경
virtual/jre -X -alsa -cups

현재 젠투 프로파일에 따라 이미 해당되는 설정이 되어 있을지도 모릅니다. 보통 개별 꾸러미에 적용하는 USE 플래그 설정은 emerge 를 시연 모드로 실행할 때 확인할 수 있습니다:

user $emerge -pv virtual/jre

자바 가상 머신 설정

간단히 살펴보기

젠투는 여러 JDK와 JRE를 어떤 기능상 중복 없이 설치할 수 있습니다.

기본 가상 머신 설정

java-config --list-available-vms 명령을 실행하면 시스템에 설치한 JRE와 JDK 목록이 나옵니다. 다음은 출력 예제입니다.

root #java-config --list-available-vms
The following VMs are available for generation-2:
1)      IcedTea-bin 1.10.4 [icedtea-bin]
2)      Sun JDK 1.5.0.20 [sun-jdk-1.5] (Build Only)
*)      Sun JDK 1.6.0.16 [sun-jdk-1.6]

*은 현재 (시스템 가상머신 또는 사용자 가상머신을 선택했을 경우) 활성화한 JVM을 나타냅니다. 각괄호("[]")에 있는 이름은 각 가상머신의 처리 번호입니다. 처리 번호는 가상머신을 설정할 때 java-config --set-system-vm 명령에 쓸 수 있습니다. 다음 텍스트에서는 시스템 가상머신을 설정하는 예제를 보여드립니다.

root #java-config --set-system-vm sun-jdk-1.6
Now using sun-jdk-1.6 as your generation-2 system JVM

대안책: 관리 번호로 가상 머신 선택:

root #java-config --set-system-vm 3
Now using sun-jdk-1.6 as your generation-2 system JVM
참고
사용자 또는 시스템 가상머신을 업데이트할 때 프로파일 source 지정은 더 이상 필요하지 않습니다.

Java 브라우저 플러그인

중요
The Java plugin support had been deprecated in JDK 9[1].
참고
Note that Chromium-based browsers since version 42 and Firefox since version 52 no longer support NPAPI-based plugins[2]. This effectively disables the Java plugin on modern browsers.

For those who need a Java-enabled browser for a specific use case, there is e.g. palemoon/palemoon-bin available in the palemoon overlay, which has long-term support for NPAPI and thus Java plugins up to JDK 8[3].

Java에서 사용할 USE 플래그

USE 플래그 설정

USe 플래그에 대한 더 많은 정보는 젠투 핸드북의 USE 플래그 장을 참고하십시오.

USE 플래그

  • java 플래그는 여러가지 프로그램에 Java 언어 지원을 추가합니다
  • nsplugin 플래그는 모질라 유사 브라우저(파이어폭스) 지원을 추가합니다. 모질라 유사 브라우저에서 Java 애플릿을 가동할 때 필요합니다.
  • source 플래그는 꾸러미 소스코드 zip 파일을 설치합니다. 예전에는 사용중인 라이브러리의 소스 코드를 IDE에 '붙일' 때 사용했습니다(하지만 최근에는 maven이나 gradle로 끌어다 씁니다. 역자 주.).
  • jce 플래그는 Java 암호화 엔진 지원 기능을 추가합니다
  • Java 꾸러미에서, doc 플래그는 javadoc을 이용하 API 문서를 빌드합니다.

Following USE flags go in JAVA_PKG_IUSE, see Gentoo Java USE flags for details and other specific USE flags of Java:

  • The source flag installs a zip of the source code of a package. This is traditionally used for IDEs to 'attach' source to the libraries that are being use;
  • For Java packages, the doc flag will build API documentation using javadoc.

Troubleshooting

Minecraft launcher errors

  • A specific error in which minecraft-launcher crashed after a few seconds, throwing "Alarm" and "SaveToBuffer failed" error was solved by setting the USE flag threads for net-misc/curl.
  • When executing minecraft-launcher the following error was produced:
user $./minecraft-launcher
[0229/184549.183275:ERROR:sandbox_linux.cc(346)] InitializeSandbox() called with multiple threads in process gpu-process.

This was solved by executing minecraft-launcher with the following option:

user $MESA_GLSL_CACHE_DISABLE=true ./minecraft-launcher

추가 참조

외부 자료

더 많은 자료는 오프라인에서 찾아볼 수 있습니다:

  • man java-config
  • java-config --help
  • man java-config
  • java-config --help

이 문서와 관련한 제안이나 질문이 있으면 젠투 Java 팀의 java@gentoo.org 전자메일 주소로 문의바랍니다.

References

  1. JDK 9 and the Java Plugin, java.com. Retrieved on November 30, 2018
  2. How do I enable Java in my web browser?, java.com. Retrieved on November 30, 2018
  3. Pale Moon future roadmap, palemoon.org. Retrieved on June 28, 2019

This page is based on a document formerly found on our main website gentoo.org.
The following people contributed to the original document: Joshua Nichols, Karl Trygve Kalleberg, nightmorph
They are listed here because wiki history does not allow for any external attribution. If you edit the wiki article, please do not add yourself here; your contributions are recorded on each article's associated history page.