Tem jeito de eu setar o Xmx via código? meu programa preciasa abarir imagens maiores q 12mb e se deixar o xmx default, ele não abre… o problema eh q eu sei como setar na minha máquina, mas como faço pra setar isso no programa q o usuario vai executar???
eu tentei fazer isso: mas não adiantou:
public static void main( final String[] args) throws FileNotFoundException, IOException {
if ((args.length != 0) && args[0].equals("xmx_set")) {
new Principal();
}
else {
try {
Runtime.getRuntime().exec("java -Xmx512M -jar client.jar xmx_set");
new Principal();
} catch (final IOException e) {
e.printStackTrace();
}
}
Alguém tem outra ideia?
Runtime.getRuntime().exec("cmd java -Xmx512M -jar client.jar xmx_set");
Opa, até onde sei, já existem reclamações desse tipo por aí na comunidade Java.
Pelo que relatam, muitos sentem falta de algum mecanismo melhor para carregar esses parâmetros doidos de JVM, como por exemplo no manifest de arquivos JAR executáveis.
Uma solução seria fazer algum script batch e/ou script shellscript para rodar a sua aplicação com esses parâmetros de JVM doidos.
Inté.
sim, eu fiz isso mas quando eu dou o
System.out.printf ("%.2f MB %n", Runtime.getRuntime().totalMemory() / (1024.0 * 1024.0));
System.out.printf ("%.2f MB %n", Runtime.getRuntime().maxMemory() / (1024.0 * 1024.0));
continua com o mesmo valor de antes:
9,63 MB
247,50 MB
PQ???
Mas se eu fizer:
Runtime.getRuntime().exec("cmd java -Xmx512M -jar client.jar xmx_set");
eu tb tenho q fazer uma aplicação via dos?
Você não tem que ‘fazer’. Você vai executar o jar via linha de comando. Como se você estivesse fazendojava -jar app.jar
no cmd do Windows ou no terminal no Linux.
Um adendo… Isso provavelmente vai levantar uma nova JVM. Portanto fique atento se precisar usar alguma coisa de uma app em outra (acredito que você vai ter que usar algum mecanismo de troca de mensagens).
De uma olhada nas classes ManagementFactory e OperatingSystemMXBean. Elas podem, quem sabe, te ajudar.
então não tem jeito de fazer isso apenas por comando dentro do java??
A resposta simples é: não dá para fazer isso dentro do Java.
A resposta melhor é: nunca inicie seu programa dando um duplo-clique no JAR. Use sempre um script (batch) com as opções corretas. Por exemplo, o Tomcat, o Glassfish e muitos outros programas funcionam exatamente assim.
(No caso específico do Tomcat, Glassfish e outros programas que podem rodar como serviços do Windows, os “wrappers” (.exe que é usado para iniciar esses programas) é que carregam essas opções - talvez do Registry ou de algum outro arquivo de configuração) e então carregam a JVM com os parâmetros adequados.
e vc sabe como eu faço isso?
pode me passar um script???
ou um tutorial?
Um script no Linux ou uma batch no windows é simplesmente um arquivo-texto com o comando que você digita na linha de comando para iniciar seu programa. Basicamente é só isso. A única diferença é:
- No Unix/Linux, o script deve ter permissão de execução (chmod +x nome_arquivo); o arquivo de script pode ter qualquer nome.
- No Windows, uma batch deve ter um nome que termina com .bat ou .cmd.
então devo fazer assim?
echo
java -jar arquivo.jar
pause
Desculpe a ignorancia estou perdidinha…
vc pode me passar um scripst do .bat?
tipo o que eu tenho q colocar pra ele rodar o meu .jar com a definição do xmx?
Obrigada!!!
@echo off
java -jar ...
essa parte eu sei… como eu mudo os parametro do xms polo bat???
manda o codigo bat intyeiro, please!!
tks
java -XmxTTTM -jar app.jar
gente alguem pode por favor colocar o scrip de como devo fazer o .bat pra executar meu arquivo com as alterações do xms na maquina do usuario??? por favor!!!
Cara, eu já coloquei ali embaixo… É só você ler e juntar as partes.
desculpa a minha ignorancia, mas eh q eu não entendi!!!
e outra coisa, como vou colocar o caminho do jar na bat se eu não sei onde o jar vai estar na maquina do usuario?
eu tô fazendo assim, mas não está adiantando:
echo
java -jar airport2.jar
java -Xms32m -Xmx512m
pause