Problema ao tentar rodar programa em java

3 respostas
G

Bom dia srs.! Antes de mais nada devo dizer que eu sou uma topeira em java...costumo programar em php mas estou estudando esse código que dá a geolocalização do notebook através dos aps wifi disponiveis.

O link com os códigos e explicações sobre o programa é esse: [url]http://milo2012.wordpress.com/2012/02/23/geolocation-via-wireless-access-points/[/url]

Ocorre que quando eu tento executar .exe ou tento abrir o .class pelo cmd do windows aparece esse erro:

C:\Users\ROOT>java getGPSLocation

This is Windows Machine
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 0, Size:
0
        at java.util.ArrayList.rangeCheck(Unknown Source)
        at java.util.ArrayList.get(Unknown Source)
        at getGPSLocation.googleLookup(getGPSLocation.java:92)
        at getGPSLocation.getWindows(getGPSLocation.java:69)
        at getGPSLocation.main(getGPSLocation.java:15)
Quando eu tento executar o applet pelo navegador o console do java só mostra a seguinte mensagem:
This is Windows Machine
E nao mostra nem a latitude nem longitude como deveria. Estou tentando estudar o código e modifica-lo minimamente para que a localização seja enviada via http request para meu site... seria algo como construir um link assim: "meusite.com/pegalocalizacao.php?coordenadas="+geoCoordinates; Desta maneira eu pegaria via $_GET a localização com o php.

Estou utilizando o windows 7 ultimate, a minha versao do java é C:\Program Files\Java\jdk1.7.0_09

O que estou fazendo de errado??

Agradeço a atenção.

3 Respostas

E

Bom, pelo erro

java.lang.IndexOutOfBoundsException: Index: 0, Size:

Vc tem um arrayList que deveria ter algo dentro dele preenchido, mas o mesmo não tem nada.
Vc não tem parâmetros a serem inseridos para rodar este programa?

G

Não, pelo que entendi é só rodar que ele mostra a localização no console…tanto que daria pra rodar pelo navegador com o applet…o estranho é que ja consegui fazer funcionar antes quando usava o windows vista…acho que errei na hora instalar o java…ou a versão do java no meu pc é diferente ou bloqueia que o script acesse a internet…ja desabilitei firewall e fiz o diabo aqui mas não funcionou, acho que o problema esta realmente na configuração da minha maquina e não no código.

LucasHP

Amigo, seguinte, como não estudei o programa a fundo, vou te dar uma ajuda basica na debugada do código para ver se clarifica sua mente ou se dá alguma ajuda.

Ele ta tentando acessar o index 0 do Arraylist, mas o ArrayList ta em branco.

Vi que o erro efetivamente ocorre nessa linha de codigo (fuçei nos fontes) :

queryString+=rssiList.get(j); // Ele tenta recuperar a posição 'j' (no caso, 0) do array, e lança exceção pois não existe nada nessa posição_

Que se for ainda mais a fundo, ve que esse rssiList está sendo declarado na linha 31:

ArrayList rssiList = new ArrayList();

E populada na linha 61 (para isso, ele tem que entrar em um if na linha 56):

rssiList.add(signal);

Para popular, ele executa um comando no seu cmd: “netsh wlan show networks mode=bssid”

E baseado no output dele que ele preenche o restante.

Minha opinião: Não tá entrando no if da linha 56, portanto não preenche o ArrayList rssiList.

Solução? Sinceramente não sei, aqui funcionou normal, e tambem estou usando um windows 7 ultimate (64 bits).

Sugiro que voce verifique qual output dá quando voce execute manualmente esse “netsh wlan show networks mode=bssid”, provavelmente não tá retornando algo que o programa tenta ler. Pode ter algo a ver com os wifis proximos ou coisa assim.

Abraços.

Criado 9 de dezembro de 2012
Ultima resposta 10 de dez. de 2012
Respostas 3
Participantes 3