Java/pt-br

Java é Sun Microsystems]] que utiliza um runtime para executar aplicações Java em diversas plataformas. É uma escolha popular para desenvolvedores que desejam criar aplicações multiplataforma.

Visão Geral
Java é uma linguagem de programação desenvolvida pela Sun Microsystems. A linguagem é orientada a objetos e projetada para rodar em várias plataformas sem a necessidade de recompilar o código em cada uma delas. Embora Java possa ser compilado como um programa nativo, a maior parte de sua popularidade pode ser atribuída à sua portabilidade, junto com outras características, como gerenciamento automático de memória. Para tornar a independência de plataforma possível, o compilador do Java compila o código Java para uma representação intermediária, chamada "Java bytecode" que roda em uma JVM (Java Virtual Machine) e não diretamente no sistema operacional.

Para executar o Java bytecode, é preciso ter o JRE (Java Runtime Environment) instalado. O JRE fornece bibliotecas principais, uma Máquina Virutal Java dependente da plataforma, plugins para browsers, entre outras coisas. O JDK (Java Development Kit) adiciona ferramentas de programação, como um compilador de bytecode e um debugger.

Linguagens JVM
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.

O básico
Gentoo fornece vários Java Runtime Environments (JREs) e Development Kits (JDKs). As opções atuais incluem:

Instalando o JRE/JDK
Para instalar JDK padrão execute:

Para instalar o JRE padrão execute:

Para evitar qualquer problema de licença, considere instalar o, uma implementação Java aberta do projeto OpenJDK.

Instalando a Máquina Virtual IcedTea GCJ
The IcedTea virtual machine is provided in source code and requires compilation by a Java bytecode compiler. This bootstrapping can be executed by the GNU Compiler for Java (GCJ). This compiler is available when GCC is built with the  USE flag.

When GCC is rebuilt with this USE flag set, the package can be installed. Because of a Portage bug, users need to install and  explicitly first if they are not already present.

Installing fetch-restricted virtual machines
Some of the JDKs and JREs require a few extra steps in their configurations. Emerge the packages as normal. If additional steps are required the ebuilds will provide instruction for the user on where to go and what to download.

Download the indicated file(s) into (or the value of DISTDIR ). Once the files are in the right directories, rerun the command, at which point the JRE/JDK will be begin to install.

Setting up a headless JRE
Sometimes there is no need for a full JRE with all the capabilities of java. Using java on a server often does not require any GUI, graphical, sound or even printer related features. To install a simplified (sometimes also referred to as headless) JRE, a few USE flags need to be changed for the selected JRE flavor.

Depending on the current Gentoo profile, this might already be the case. As usual, the USE flag settings that are applicable to a particular package can be checked by running in pretend mode:

Visão Geral
Gentoo tem a capacidade de ter múltiplos JDks e JREs instalados sem causar conflitos.

Usando a ferramenta com privilégios de root, uma máquina virtual (VM) Java padrão para todo o sistema pode ser configurada. Usuários também podem usar para configurar uma VM personalizada por usuário.

Configurando uma máquina virtual padrão
Executando o comando com a opção   irá produzir uma lista de todos os JREs a JDKs instalados no sistema. Por exemplo:

O * indica que esta é a JVM ativa atual(system-vm ou user-vm quando configurada). O nome entre colchetes ([]) é o identificador ou ID dessa VM específica. O identificador ou o número para pode ser usado para definir a VM. O texto seguinte fornece um exemplo de como configurar a VM do sistema.

Configurando a VM do sistema(preferido):

Método alternativo: selecione a VM pelo número identificador:

Como usuário comum, use java-config.

Build only VM
Some virtual machines are flagged as build-only due to being EOL and/or containing security vulnerabilities. These virtual machines will not automatically be used by Gentoo for the running of applications using Gentoo launchers (run-java-tool script designed for switching VMs), but will still be available for use by Gentoo's build environment as some packages may require them for building. The setting of these virtual machines as either the system or user VM is strongly discouraged as these VMs will then be used when running the executables, as well as used by any packages not using Gentoo's launcher scripts.

Setting a default CLASSPATH
can also be used to set a system-wide default CLASSPATH, as well a user-specific default CLASSPATH.

First, list available Java libraries installed on the system to possibly put in the CLASSPATH variable. Here is an example of output:

Again, the names in brackets ([]) are the IDs to pass to. Here is an example:

Update the environment by logging out, then in again or by typing.

For users, will create  file, which should be sourced from the shell's profile.

If desiring a system wide or user default classpath add something like the following to the shell's profile. This is advised against:

Java browser plugins
The Java browser plugin used to be managed via. This has now been removed in favor of a simpler out-of-the-box experience. For basic usage, simply emerge the chosen JVM with the  USE flag enabled. Note that Oracle's plugin is only available for and.

For more information, including JVM selection, Web Start, and multilib, see the README installed with icedtea-web.

Setting USE flags
For more information regarding USE flags, refer to the USE flags chapter from the Gentoo Handbook.

USE flags

 * The flag adds support for Java in a variety of programs;
 * The flag adds support for Mozilla-like browsers (including Firefox). This is needed for viewing Java applets in a Mozilla-like browser;
 * The flag adds support for the Java Cryptography Engine;

Following USE flags go in JAVA_PKG_IUSE.
 * The 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 flag will build API documentation using javadoc.

External resources

 * The gentoo-java, gentoo-user, and gentoo-dev mailing list archives
 * and on IRC
 * Java 7 and bootstrapping icedtea on the Gentoo forums

More information can be found offline:



For suggestions or questions regarding this document, please email the Gentoo Java team: