Redirecionamento entrada padrão Java para arquivo via Eclipse

Bom dia.

Criei um código simples que simplesmente lê uma linha de texto informada pelo usuário na entrada padrão e a imprime na tela (ver listagem abaixo).

public class EntradaSaida {
        public static void main(String args[]) {
                Scanner sc = new Scanner(System.in);
                String linha = sc.nextLine();
                System.out.println(linha);
                sc.close();
        }
}

Segundo o que já sabemos, eu posso redirecionar a entrada padrão para receber dados de um arquivo, ao invés de ler do teclado, certo? Para isso, basta executar a seguinte linha de comando:

Ok. Eu gostaria de saber como faço isso no Eclipse. Eu sei que há a opção “Arguments” na janela de configuração da execução “Run Configurations”. Então, teoricamente, eu deveria apenas adicionar o texto “< teste.txt” na caixa de texto “Program arguments” (ver imagem em anexo). Porém isto não funciona. Alguém poderia me ajudar?

Obrigado.
Paulo Júnior.


Olá pessoal.

Após ter postado a mensagem acima ontem, li diversos outros posts em fóruns de Java e descobri que este é um problema ainda em aberto. Pensando um pouco mais sobre o assunto, cheguei a uma solução que não é a mais interessante, porém funciona e gostaria de compartilhar com vocês.

1º Passo: criei um arquivo de lote (estou usando Windows, portanto, um arquivo .bat) com os seguintes comandos:

2º No Eclipe, cliquei sobre o menu “Run -> External Tools -> External Tools Configurations”. Na janela que se abriu, fiz as configurações que estão na figura em anexo.

O ideia é bem simples. Quando vou rodar meu programa, eu selecione esta configuração que criei. Ela configuração, por sua vez, executa o arquivo em lote. O arquivo em lote é responsável por compilar e executar minha aplicação com os parâmetros que estão especificados no campo “Arguments” da janela da figura em anexo.

Espero que tenha ajudado.

Até mais.
Paulo Júnior.