Pessoal boa tarde, gostaria do auxilio de vc’s mais uma vez é o seguinte:
tenho uma classe que escreve num vetor. esta funcionando mas ta gerando este erro:
ERROR: JDWP Unable to get JNI 1.2 environment, jvm->GetEnv() return code = -2
JDWP exit error AGENT_ERROR_NO_JNI_ENV(183): [../../../src/share/back/util.c:820]
alguem mode me dizer o que quer dizer este erro?
Coloque a parte do código ou o código inteiro que está dando esse erro.
pra não repetir…
http://www.guj.com.br/posts/list/143927.java
neste meu outro topico tem o codigo, quando coloco uma posição válida, ele imprime o valor correto e da este erro, isso acontecem em todos os metodos de teste outro exemplo
public class TesteAdicionaNoFim {
public static void main(String[] args) {
Aluno a1 = new Aluno();
Aluno a2 = new Aluno();
Vetor lista = new Vetor();
a1.setNome("Rafael");
a2.setNome("Paulo");
lista.adicionaFim(a1);
lista.adicionaFim(a2);
for(int i = 0;i < lista.getTotalDeAlunos();i++){
System.out.println(lista.getAlunos()[i]);
}
}
}
coloque o codigo do Vetor
quer dizer esta classe?
public class Vetor {
private Aluno[] alunos = new Aluno[100];
private int totalDeAlunos = 0;
// Adiciona no fim do vetor
public void adicionaFim (Aluno aluno){
this.garantaEspaco();
this.alunos[this.totalDeAlunos]=aluno;
this.totalDeAlunos++;
}
// entrega total de nomes
public int getTotalDeAlunos() {
return totalDeAlunos;
}
// atribui total de alunos
public void setTotalDeAlunos(int totalDeAlunos) {
this.totalDeAlunos = totalDeAlunos;
}
//entrega nomes
public Aluno[] getAlunos() {
return alunos;
}
//atribiu nomes
public void setAlunos(Aluno[] alunos) {
this.alunos = alunos;
}
//adiciona nome por possição
public void adicioNaPosicao(int posicao, Aluno aluno){
this.garantaEspaco();
if(!this.posicaoValida(posicao)){
System.out.println(posicao);
throw new IllegalArgumentException("Posição Inválida");
}
if(!this.posicaoOcupada(posicao)){
System.out.println(posicao);
throw new IllegalArgumentException("Posição Inválida");
}
for(int i = this.totalDeAlunos-1;i>=posicao;i--){
this.alunos[i+1]=this.alunos[i];
}
this.alunos[posicao]=aluno;
this.totalDeAlunos++;
}
//entrega nome por posicao
public Aluno pega(int posicao){
if(!this.posicaoOcupada(posicao)){
System.out.println(posicao);
throw new IllegalArgumentException("Posição Inválida");
}
return this.alunos[posicao];
}
//remove por posição
public void remove(int posicao){
if(!this.posicaoOcupada(posicao)){
System.out.println(posicao);
throw new IllegalArgumentException("Posição Inválida");
}
for(int i = posicao;i<this.totalDeAlunos;i++){
this.alunos[i]=this.alunos[i+1];
}
this.totalDeAlunos--;
}
//verifica se nome ja esta cadastrado
public boolean contem(Aluno aluno){
for(int i=0;i >< this.getTotalDeAlunos();i++){
if(aluno.equals(this.alunos[i])){
return true;
}
}
return false;
}
//Verifica se a posição esta ocupada
public boolean posicaoOcupada (int posicao){
return posicao >= 0 && posicao < this.tamanho();
}
//verifica se a posicao solicitada e valida
private boolean posicaoValida(int posicao){
return posicao >= 0 && posicao <= this.totalDeAlunos;
}
//tamanho do vetor
public int tamanho(){
return this.getTotalDeAlunos();
}
//dobra o tamanho do vetor, sempre que este estiver cheio
private void garantaEspaco(){
if(this.totalDeAlunos == this.alunos.length){
Aluno[] novoArray = new Aluno[this.alunos.length*2];
for(int i=0;i<this.alunos.length;i++){
novoArray[i]=this.alunos[i];
}
this.alunos=novoArray;
}
}
}
>
Olha só, você está comentendo dois erros, um na sua classe e outro no seu teste, porque quendo você está querendo chamar alunos dentro do loop for você está chamando como se o objeto lista você um vetor e não é, existe um vetor dentro da classe lista mais o objeto não é um, o outro erro é que você quendo criou o método getAlunos() você está retornando todo o vetor de Alunos aja que pode ser que nem todas as posições do vetor podem está oculpandas, minha opnião é o seguinto, criar um método que retorne uma String com todos os dados dos alunos ADICIONADOS na lista.
ex:
// retornando uma String com todos os dados dos Alunos adicionados
public String getAlunos() {
// verifica se a lista está vazia
if (this.tamanho() == 0)
return "Lista Vazia";
// é um objeto para armazenamento de dados facilita
// mais do que ficar concatenando Strings
StringBuilder str = new StringBuilder(String.format("%-30s\n", "Nome"));
for (int count = 0; count < this.tamanho(); count++)
str.append(String.format("%-30s\n", alunos[count]));
// retornando um String
return String.format("%s", str);
}
Essa é uma maneira certa de retorna os dados inseridos na lista!
Até!