teria como?
algum argumento na JVM, q possa mudar o nome do processo em especifico ?
pois se eu subir 10 processos … todos eles serão chamados de java.exe
e se eu tivesse q fechar um processo em especifico via linha de comando… eu nao saberia reconhecer qual o processo exato para fechar… jah q todos possuem o mesmo nome…
alguem sabe se existe algum meio de mudar o nome do processo?
[quote=alucardeck]teria como?
algum argumento na JVM, q possa mudar o nome do processo em especifico ?
pois se eu subir 10 processos … todos eles serão chamados de java.exe
e se eu tivesse q fechar um processo em especifico via linha de comando… eu nao saberia reconhecer qual o processo exato para fechar… jah q todos possuem o mesmo nome…
alguem sabe se existe algum meio de mudar o nome do processo?[/quote]
Uma pergunta, pq vc quer fazer isso? Interroper o processo não me parece uma boa saída para fechar seu programa!
estou utilizando varias frameworks em conjunto…
todas sendo executadas pelo ANT de modo automatizado…
ou seja…
eu testo algumas classes com o TestNG… enquanto o EMMA faz o report delas…
entao eu de vez em qdo preciso utilizar o Selenium para automatizar alguns testes de tela…
soh q rodando o Selenium pelo Eclipse… ele abre o processo normalmente… mas como vc fica sem uma “interface grafica” não eh possivel fechar por outro modo sem ser o (“Quadrado Vermelho”) do Eclipse (no console)… eu precisaria fechar o aplicativo de forma automatizada via ANT…
via tasks ele aparece como o Java.exe … se eu der um taskkill java.exe … ele fecha todos os processos Java da maquina… incluindo outros servidores…
então eu precisaria especificar esse processo… para poder fechar somente ele…
creio q por argumentos da JVM possa mudar… mas nao encontro nenhuma documentação sobre os parametros dela…
quando vc usa o comando “java” existe o parametro “-D” q serve para setar variaveis, nao sei se existe alguma variavel q carrega por default o nome “java.exe”
acredito que nao tenha como
pois o nome do processo é o nome do executavel na hora da compilação
uma solução para vc
seria ctrl+alt+del
na aba aplicativos clique com o da direita no seu programa
e clique no item “ir para processo”
nao sei se é bem isso que vc quer
mas ja passei por isso
na hora que ia matar o processo eu fazia isso
Você pode usar a solução porca que é a de ir até o diretório onde está seu java.exe, e fazer um monte de cópias dele (por exemplo, “programa.exe”, “testador.exe” etc.)
O Task Manager vai mostrar o nome adequado.
[quote=thingol]Você pode usar a solução porca que é a de ir até o diretório onde está seu java.exe, e fazer um monte de cópias dele (por exemplo, “programa.exe”, “testador.exe” etc.)
O Task Manager vai mostrar o nome adequado.
[/quote]
entao… jah tentei isso…
mas mesmo assim continua sendo executado o java.exe
onde eu mudo o executavel a ser usado?
E se você criasse em C um executável que usando JNI, criasse a JVM e ligasse ela a sua classe? No manual de JNI da sun há um capítulo explicando como fazer isso. Por sinal, o java.exe é apenas um programa que faz exatamente isso.
Apesar que é mais fácil a solução do thingol mesmo. Mas ela não funcionará se o eclipse (ou o ANT) chamar sempre o java.exe, então a solução poderia ser “corrigir” essa solução, substituindo o java.exe por um outro programa em C mais ou menos assim (não testei, mas é algo assim):
#include<stdio.h>
int main (int argc, char ** argv) {
int i, j, k;
/* Conta o argv[1] duas vezes! */
/* +5 é porque são contados o ".exe" e o terminador nulo. */
int tamanho = strlen(argv[1]) + 5;
for (i = 1; i < argc; i++) {
tamanho += strlen(argv[i]) + 1;
}
char* str = (char *) malloc(tamanho * sizeof(char));
for (i = 0; i < strlen(argv[1]) && argv[1][i] != '.'; i++) {
str[i] = argv[1][i];
}
str[i++] = '.';
str[i++] = 'e';
str[i++] = 'x';
str[i++] = 'e';
str[i++] = ' ';
for (j = 1; j < argc; j++) {
for (k = 0; k < strlen(argv[j]); k++) {
str[i++] = argv[j][k];
}
str[i++] = ' ';
}
str[i] = '[code]
#include<stdio.h>
int main (int argc, char ** argv) {
int i, j, k;
/* Conta o argv[1] duas vezes! */
/* +5 é porque são contados o ".exe" e o terminador nulo. */
int tamanho = strlen(argv[1]) + 5;
for (i = 1; i < argc; i++) {
tamanho += strlen(argv[i]) + 1;
}
char* str = (char *) malloc(tamanho * sizeof(char));
for (i = 0; i < strlen(argv[1]) && argv[1][i] != '.'; i++) {
str[i] = argv[1][i];
}
str[i++] = '.';
str[i++] = 'e';
str[i++] = 'x';
str[i++] = 'e';
str[i++] = ' ';
for (j = 1; j < argc; j++) {
for (k = 0; k < strlen(argv[j]); k++) {
str[i++] = argv[j][k];
}
str[i++] = ' ';
}
str[i] = '\0';
system(str);
free(str);
}
[/code]';
system(str);
free(str);
}
Basicamente essa gambiarra é para que quando seja chamado "java.exe SuaClasse param1 param2", ele chame ao invés disso "SuaClasse.exe SuaClasse param1 param2". :lol:
POG!