2015-07-05 10 views
8

C'era un bug in eclissi che impediva a una configurazione di esecuzione di reindirizzare un file allo stdin, ma presumibilmente è stato corretto. Tuttavia, non riesco a trovare alcuna documentazione che indichi come farlo ora che è stato corretto.Reindirizzare lo stdin da un file in eclissi con la configurazione di esecuzione

È facile fraintendere quello che sto cercando di realizzare, quindi lasciami essere chiaro. Non sto cercando il codice che leggerà un file. Non sto cercando di passare un nome di file come arg. Non sto cercando di reindirizzare stdout o stderr.

Ho codice che prende normale standard input senza sapere se proviene dalla tastiera o un file esistente:

scanner = new Scanner(System.in); 
number = scanner.nextInt(); 

Ridirezionamento input da un file può essere fatto a un prompt dei comandi, naturalmente, ma io sono cercando di ottenere eclissi configurato per farlo automaticamente con il semplice tocco di un tasto Ctrl-F11.

Inequivocabile, ho eseguito una serie di ricerche sul Web cercando di rispondere a me stesso e molti di loro sostengono che la risposta è Run Configuration | Common ma finiscono per lavorare solo per lo stdout.

+1

Questo è l'annuncio e la descrizione della funzione di eclipse 4.5: https://www.eclipse.org/mars/noteworthy/#_assigning_stdin_to_a_file –

+0

@Stanec il tuo commento è la migliore risposta. Si noti che se si prova questo in 4.4 si può finire per sovrascrivere il file di input con l'output prima di sapere cosa sta succedendo. – CandiedOrange

+0

@Stanec sfortunatamente, nonostante la documentazione collegata, al contrario, dopo aver scaricato eclipse mars 4.5.0 M1 ho trovato che "Common" sembra e "funziona" come in luna 4.4.: ( – CandiedOrange

risposta

6

Questo è l'annuncio e la descrizione della funzione per Eclipse 4.5 (Marte): http://eclipse.org/mars/noteworthy/#_assigning_stdin_to_a_file

Stdin può ora essere assegnato ad un file nella Comune scheda di avvio finestre di dialogo di configurazione. enter image description here

Come previsto, questa è una nuova funzionalità della appena rilasciato Eclipse 4.5 e quindi non funzionare in una versione precedente.

+0

Dato che alcune build di mars 4.5 non hanno questa caratteristica puoi essere più specifico con la versione minima? So che M1 non ce l'ha ma l'SDK con Build ID: I20150603-2000 – CandiedOrange

+0

Ciò che è scaricabile direttamente da https://www.eclipse.org/downloads/ (e/o il nuovo programma di installazione di Oopmh) contiene la funzionalità. Solo le versioni di sviluppo (contrassegnate da "M" come "Milestone") non contenere la correzione –

2

Avrete bisogno di Eclipse Mars per questo, poiché il bugfix non è stato eseguito il backport.

Entrare in Run Configurations, aprire il numero Java Application. Nella scheda Common, c'è un gruppo Standard Input and Output, in cui è possibile definire un file di input.

5

Spero di aver capito bene.

Il file deve avere una nuova riga alla fine.

public static void main(String[] args) { 
    try (Scanner scanner = new Scanner(System.in)) { 
     System.out.println(scanner.next()); 
    } 
} 

File per contenere un testo (e termina con una nuova riga vuota, non solo un testo).

Quindi Run Configuration | Common | Input File

E il programma stamperà il contenuto del file.

Edit: Costruire ID: 20.150.621-1.200

+0

" ha bisogno di una nuova riga alla fine "ha confermato + 1 – CandiedOrange

+0

Ottimo, potresti accettare la risposta? –

Problemi correlati