Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Código só funciona no console do Eclipse

Olá,

Estava iniciando os exercícios sobre entrada e saída de arquivos, e notei que o código abaixo funciona somente no console do eclipse, mas não na JVM quando quando executo o programa pelo terminal (sistema operacional linux mint):

package Javaio;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;

public class TestaEntrada {

    public static void main(String[] args) throws FileNotFoundException, IOException {
        FileInputStream fis = new FileInputStream("entrada.txt");
        InputStreamReader isr = new InputStreamReader(fis);
        BufferedReader br = new BufferedReader(isr);
        String s = br.readLine();
        System.out.println(s);

    br.close();
    }

}

Será que o java não está configurado corretamente no meu sistema? Lembro de ter alterado as variáveis de ambiente necessárias.

5 respostas

Oi André, está lançando exception?

To pensando aqui que o problema pode ser no caminho do file q vc tá passando no input stream. Vc verificou essa parte?

Abraço e aguardo a resposta! (:

Olá, boa noite,

Eu estou lançando as exceptions conforme o eclipse apontava, o caminho do arquivo eu não coloquei inteiro, mas coloquei ele na mesma pasta raiz do projeto (onde fica a pasta src). O que eu não entendi é que a saída saí certinha no console do eclipse, mas no terminal sai o erro "impossível encontra a classe principal". Só que eu chamo o terminal na pasta onde está o arquivo TestaEntrada.class

Eu vou tentar rodar no outro PC que eu tenho (Windows 10) e ver se funciona. Hoje eu reparei algumas dependências quebradas do meu Linux, não sei se pode ter sido isso.

Atualizado: código também não funciona no windows 10. Tentei colocar o caminho completo do arquivo, também não funcionou.

solução!

Consegui consertar sozinho. Por algum motivo, o código só roda se eu colocar a classe no pacote default. Não entendi muito bem o porquê, se alguém puder explicar eu agradeço.

Consegui entender pessoal,

Pra executar a classe de outro pacote que não seja o default, chame o terminal (ou prompt de comando) na pasta bin, então chame a JVM dessa forma: java nomedopacote.nomedaclasse

Fica a dica pra quem tiver o mesmo problema.