Bom dia
Sou novo aki no fórum porque estou com alguns problemas
Antes vou explicar o código o q pretendo fazer nele, bom eu estou criando um loader em java para um servidor de um jogo, e eu queria saber como alterar o arquivo "host" do windows, apenas acrescentando linha com o ip do servidor caso o arquivo não tenha ou alterar o endereço ip do servidor, porque o servidor pode ter troca de ip após ter um restart.
agora o q eu não consegui: (obs.: arquivo se chama Loader.java)
1) adicionar a linha caso não seja encontrada
2) código q eu fiz para alterar linha apresenta 2 erros q são os seguintes:
C:\programacao\Loader.java:101: cannot find symbol
symbol : variable fc
location: class Loader
BufferedReader ler = new BufferedReader (new FileReader(fc.getSelectedFile("C:/WINDOWS/system32/drivers/etc/hosts")));
C:\programacao\Loader.java:114: cannot find symbol
symbol : variable loader
location: class Loader
oos.writeObject(loader);
2 errors
public static void main (String args[])
{
Loader Load = new Loader();
Load.pack();
Load.setVisible(true);
//AREA DE TESTE
String ping = "ping http://jogo.org";// Declarando o comando
Process p = Runtime.getRuntime().exec(ping); //Ele executará o comando ping.
InputStream in = p.getInputStream();//Armazenando o valor do ping
int c;
while ((c = in.read()) != -1)
{
//teste para ler o arquivo hosts
try
{
//criando um buffer pra poder ler cada linha do arquivo hosts
BufferedReader ler = new BufferedReader (new FileReader(fc.getSelectedFile("C:/WINDOWS/system32/drivers/etc/hosts")));
String linha="jogoauthd.jogo.com";
String le;
while ((le=ler.readLine()) != null)
{
//aki raciocinio pra alterar a linha caso for diferente ou nao mudar caso for igual
if(le == linha)
{
//PrintWriter saida = new PrintWriter ("C:\WINDOWS\system32\drivers\etc\hosts");
try
{
FileOutputStream fos = new FileOutputStream("C:/WINDOWS/system32/drivers/etc/hosts");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(Loader);
oos.flush();
}
catch(Exception e)
{
e.printStackTrace(System.err);
}
}
}
ler.close();
}
catch (Exception e)
{
e.printStackTrace(System.err);
}
}
in.close();
//FIM DA AREA DE TESTE*/
}
resultado q tem q ficar no arquivo "hosts" do windows é o seguinte: (lembrando q é somente para acrescentar ou alterar a linha)
127.0.0.1 localhost
75.125.177.50 jogoauthd.jogo.com
bom já digo q não sou expert em java, mas pesquisei e estudei muito pra chegar nisso, alguns trechos desse código eu peguei idéia de outros lugares q encontrei, esse é o meu maior desafio antes do meu próximo projeto, então queria pedir ajdua de vcs para entender melhor e achar uma forma de resolver esse problema.
se não fui claro posso tentar explicar de outra maneira. :)
obrigado pela sua atenção.
ps.: se esste topico não estiver deacordo com a regras podem deleta-lo :wink:
