Mudando a JVM em Java

16

Eu só recentemente descobri as diferentes JVMs na página wiki e pensei em começar a mexer. Tem sido difícil encontrar documentação sobre como configurar o Java no Ubuntu.

Digamos que eu queria mudar o JRE ou o JDK que estou usando, eu poderia abrir um terminal e dizer

sudo update-alternatives --config java

E depois escolha uma das versões instaladas.

Se eu estou entendendo o direito da JVM (o que eu posso muito bem não ser), Você pode configurar o openJDK para usar JVMs alternativas (por exemplo, JAMVM) e executá-lo como tal

jamvm -jar foo.jar

2 perguntas,

1: Eu tenho o conceito de um direito de JVM? Como isso é possível?

2: Em caso afirmativo, como faço para configurar a JVM e mudar o padrão para uma JVM de minha escolha?

    
por OVERTONE 24.02.2012 / 14:07

2 respostas

17

Sinta-se à vontade para usar isso como uma referência para mexer com o Java em tempo de execução.

Escolhendo seu JRE

Para escolher o seu JRE, use

sudo update-alternatives --config java

Isso dará algo como a saída a seguir.

  Selection    Path                                            Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-6-openjdk/jre/bin/java         1061      auto mode
* 1            /usr/lib/jvm/java-6-openjdk/jre/bin/java         1061      manual mode
  2            /usr/lib/jvm/java-6-sun/jre/bin/java             63        manual mode
  3            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1051      manual mode

Você pode então selecionar qual runtime Java você quer através da seleção do número.

Escolhendo sua JVM

Sun / Oracle tem duas opções de JVM, -server e -client. Se você selecionar o OpenJDK como seu ambiente de tempo de execução Java, terá opções adicionais.

Quando você digita java no terminal sem outros parâmetros, a ajuda lista várias VMs opcionais. Eu não tenho certeza quais vêm com o OpenJDK, mas 3 populares são JamVM, Zero e Cacao

Para usá-los, basta digitar

java -jamvm 'your other parameters here'
java -cacao 'your other parameters here'
java -zero 'your other parameters here'
java -server 'your other parameters here

A VM -server é normalmente o padrão. Você também pode especificar -client , mas no IcedTea6 de 64 bits ele parece executar a mesma versão de -server. Provavelmente existem outros, mas acho a opção padrão a mais responsiva.

Configurando sua memória

Finalmente, como configurar a memória do Java (apenas porque)

java -Xmx1024m -Xms128m 'your other parameters here'

Isso limita a memória permitida para o programa Java a um máximo de 1024 MB e define seu tamanho de memória inicial como 128 MB. Essa é uma ótima maneira de definir os requisitos mínimos do sistema. A página man do Java 6 para o comando java descreve essas opções e outros.

Isso é tudo. Se alguém tiver ajustes adicionais em Java para o Ubuntu, deixe-os nos comentários e os adicionarei.

    
por OVERTONE 25.02.2012 / 17:26
0

Para definir a JVM padrão dentro de uma instalação do OpenJDK, você precisa editar o arquivo de configuração jvm.cfg localizado dentro da / usr / lib / jvm / java- versão -openjdk- arch / jre / lib / arch /jvm.cfg

O Ubuntu expõe o arquivo jvm.cfg dentro do diretório / etc /, dependendo da versão do OpenJDK. /etc/java-6-openjdk/jvm-arch.cfg ou / etc / java-7-openjdk / jvm- arch .cfg

O mais alto - jvmname CONHECIDO A linha dentro do arquivo jvm.cfg determina a JVM padrão.

Não há uma ferramenta de configuração disponível, portanto você precisa localizar e editar esses arquivos manualmente.

    
por xranby 28.03.2013 / 09:26