Minha pergunta vai soar um tanto boba mas estou com uma dúvida no seguinte. Vamos supor que eu tenha um filesystem remoto onde eu tenho uma instalação do JDK 1.6, e desenvolvo em minha máquina os fonte e gero o bytecode com o javac remoto (porém o .class fica na minha máquina), qunado eu der um comando como:
$ java Aplicativo
// Onde Aplicativo é o .class
Ai que estão as minhas questões:
[list]Como o programa java é mapeado remotamente esse programa vai rodar remotamente???[/list]
[list]Existe alguma vantagem de performance se eu rodar esse Aplicativo mais de uma vez nesta vm remota? Como por exemplo uma memória compartilhada ou coisa do tipo?[/list]
O aplicativo vai rodar na maquina em que você chamar o comando.
furutani
Só atentar para a versão do JDK que compilou com a versão da JRE que vai rodar, se a que compilou for maior que a que vai rodar tem grandes chances de não funcionar.
paulopatto
Ou seja mesmo não tendo um JRE instalado na minha máquina, ele vai rodar na minha cpu???
G
gambazinho
acho que não, vc vai sempre precisar de uma VM instalada em sua máquina, e quanto à questão que o furutani falou está correta, se vc compila na versao 1.6 e tenta rodar na 1.5, muito possívelmente da pau
paulopatto
Não mas acho que você não entenderam.
EU NÂO TENHO o JRE na minha máquina eu chamo o comando java pela rede ou seja em um host que tem o jdk instalado (o mesmo que gero o bytecode pelo javac).
O processo java roda no servidor ou em minha máquina???
G
gambazinho
se vc CONSEGUE executar o processo então ele roda no servidor.
paulopatto
Bem se ele roda no servidor e mais de uma pessoa executa o mesmo .class, existe alguma otimização por parte da vm para otimizar o processo??? Tipo cache de memória ou coisa do tipo???
bruno.costa
como é que você o executa? dependendo ele roda na maquina local.
ele estar no servidor, não diz muita coisa. se eu tenho um executável em um diretório do servidor e o executo. ele copia em memória pra maquina local, e executa. o processo roda local.