Estou desenvolvendo um programa em outra linguaguem ( nao entendo nada de Java), mas preciso de uma classe em java que retorne por variavel o ip local (Win), meu sistema vai acessar a classe e obter o ip.
Depois de muito pesquisar, consegui utilizando um metodo void, tentei alterar para string e incluir o return mas nao consigo.
Verifiquem se podem me ajudar por favor.
Segue o codigo:
[code]
public class IpLocal {
public static void main(String[] args) {
new IpLocal().say();
}
public void say() {
try {
java.net.InetAddress i = java.net.InetAddress.getLocalHost();
String ip = i.getHostAddress();
System.out.println(ip); // IP address only
}
catch(Exception e){e.printStackTrace();}
}
} [/code]
Estou desenvolvendo um programa em outra linguaguem ( nao entendo nada de Java), mas preciso de uma classe em java que retorne por variavel o ip local (Win), meu sistema vai acessar a classe e obter o ip.
Depois de muito pesquisar, consegui utilizando um metodo void, tentei alterar para string e incluir o return mas nao consigo.
Verifiquem se podem me ajudar por favor.
Segue o codigo:
[code]
public class IpLocal {
public static void main(String[] args) {
new IpLocal().say();
}
public String say() {
try {
java.net.InetAddress i = java.net.InetAddress.getLocalHost();
String ip = i.getHostAddress();
return ip; // IP address only
}
catch(Exception e){e.printStackTrace();}
}
} [/code]
Ops… foi mal.
Isso ocorreu devido o método declarar um retorno e eu ter colocado o return apenas no catch, e caso ocorresse uma exception não teria retorno…
Pode ser assim também…
[quote=Apex]Opa!!..
Consegui, segue o codigo:
[code]
import java.net.UnknownHostException;
public class IpLocal {
public static void main(String[] args) {
System.out.println( new IpLocal().say());
}
public String say() {
String ip = "";
try {
java.net.InetAddress i = java.net.InetAddress.getLocalHost();
ip = i.getHostAddress();
}
catch(UnknownHostException e){
e.printStackTrace();
}
return ip;
}
} [/code][/quote]
Caso tenha solucionado coloque edite seu post para RESOLVIDO.
flw
public class IpLocal {
public static void main(String[] args) {
String ip = say();
System.out.println(ip); // IP address only
}
public static String say() {
try {
java.net.InetAddress i = java.net.InetAddress.getLocalHost();
String ip = i.getHostAddress(); //System.out.println(ip); // IP address only
return ip;
}
catch(Exception e){
e.printStackTrace();
return “”;
}
}
}
todos os retornos quando são diferente de void precisam ser adicionados. Em condicionais ou tratamentos com try catch. Mas jah responderam. mesmo assim passo o seu código corrigido tb.
opa, esta ultima postagem do diego eh mais apropriada devido alguns padrões de programação. Primeiro a declaração
das variáveis para depois utiliza-la, com return unico neste caso. ateh