2014-01-07 29 views
-1

我使用InetAddress获取IP地址。错误:使用JAVA的系统的IP地址

这是我的代码

String hostname=args[0]; 


     try { 
      InetAddress ipaddress= InetAddress.getByName(hostname); 
      System.out.println("IPADDRESS" +ipaddress.getHostAddress()); 
     } catch (UnknownHostException e) { 
      // TODO Auto-generated catch block 
      System.out.println("Could not find anything" +hostname); 
     } 

但在控制台

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 
    at com.networking.ipaddress.IP.main(IP.java:11) 

什么实际问题?代码或系统有问题?

+0

如果带有“args”,则表示默认程序参数:如果您没有使用任何参数调用程序,则“参数”的大小为0 amd [0]将超出数组范围。在访问它之前使用if(args.Length> 0)。 –

+3

是你传递参数值吗? – Lakshmi

回答

0

您正在从程序参数中获取主机名,但在启动java时没有将主机名指定为程序参数,所以args []数组为空数组,因此访问其[0]元素会引发异常。 您必须指定主机名作为参数传递给了Java在运行应用程序如下:

java YourClassFileName 192.168.1.1 
0

您可以检查线路11类的确切地点,但显然这是你指定的主机名的形式ARGS行阵列。

String hostname=args[0]; 

如果是main方法的args []数组,请确保在运行程序时传递主机名。