2013-03-08 35 views
6

Ho recentemente effettuato il passaggio al testo sublime 2 ma non riesco a trovare alcun plugin/risorsa che mi consenta di implementare gli input della console java nell'editor. Sono riuscito a farlo compilare ed eseguire file java, ma ogni volta che il mio codice ha bisogno di input (come un input dello scanner), il codice non viene compilato e ottengo un errore.Ingresso console Java in Sublime Text 2?

Ho visto soluzioni per fare in modo che questo accada per Python, ma non è riuscito a trovare nulla su Java.

risposta

5

Va bene, ho capito una completa e perfetta soluzione a questo "Run java in Sublime" problema, ho provato solo questa operazione in Windows 7.

Seguendo i passi di seguito, sarà avere 2 sistemi di compilazione in sublime: "JavaC" e "JavaC_Input".

  • "JavaC" avrebbe permesso di eseguire il codice che non richiede input dell'utente e visualizzare i risultati in simulatore di terminale del sublime, che è conveniente e gradevole.

  • "JavaC_Input" consente di eseguire codice che richiede l'input dell'utente in una finestra di terminale separata, è in grado di accettare l'input dell'utente. In questo sistema di build puoi anche eseguire il codice che non richiede input, quindi se non ti interessa il pop-up, puoi semplicemente usare questo sistema di build e non cambiare.

Si passa da un sistema di generazione a un altro da Strumenti -> Sistema di costruzione. E compili il codice di esecuzione & usando ctrl + b.

Ecco i passi per raggiungere questo obiettivo:

(nota: Assicurarsi di avere già la configurazione di base del sistema Java: installare JDK e configurare correttamente CLASSPATH e PATH, Non mi dilungherò su questo)

"JavaC" costruire configurazione del sistema

1, Fai un file bat con il seguente codice, e salvarlo in C: \ Program Files \ Java \ JDK * \ bin \ per tenere tutto insieme. Denominare il file "javacexec.bat".

@ECHO OFF 
cd %~dp1 
javac %~nx1 
java %~n1 

2, quindi Modifica C: \ Users \ nome_utente \ AppData \ Roaming \ Sublime Text 2 \ Packages \ Java \ JavaC.sublime-build (se non c'è, crearne uno), i contenuti saranno essere

{ 
    "cmd": ["javacexec.bat", "$file"], 
    "file_regex": "^(...*?):([0-9]*):?([0-9]*)", 
    "selector": "source.java" 
} 

configurazione del sistema di build "JavaC_Input" (principalmente la stessa risposta @lac_dev s')

1, Installare Cygwin [http://www.cygwin.com/]

2, passare a C: \ Users \ nome_utente \ AppData \ Roaming \ Sublime Text 2 \ Packages \ Java \, quindi creare un file chiamato "JavaC_Input.sublime-build" con il seguente contenuto

{ 
"cmd": ["javacexec_input.bat", "$file"], 
"file_regex": "^(...*?):([0-9]*):?([0-9]*)", 
"selector": "source.java" 
} 

3, Crea un file bat con il seguente codice e salvalo in C: \ Programmi \ Java \ jdk * \ bin \ per mantenere tutto insieme. Denominare il file "javacexec_input.bat".

@echo off 
javac -Xlint:unchecked %~n1.java 
start cmd /k java -ea %~n1 
-1

Purtroppo, non ci sono soluzioni disponibile per Sublime Text 2 o 3.

Ma io ancora lo amano! Quindi cosa faccio di solito è solo specificare manualmente l'ingresso:

System.out.print("Enter Stack size: "); 
//int input = br.readLine(); 
int input = 10; 

lasciando le parti necessarie per commentati quando ho bisogno di eseguire il programma con l'input (quasi mai, in effetti).

0

Sono stato in grado di capirlo su Windows 8, non l'ho provato su nessuna altra piattaforma, spero che questo funzioni per voi.

  1. Installare Cygwin [http://www.cygwin.com/]

  2. Assicurarsi che i comandi di avvio utilizza l'unità: \ Path_to_cygwin_installation \ bin \ iniziare

    • Potete verificare questo con il cui comando:
       where start
  3. Creare un javac.sublime.build sistema

    • questo è mio, può essere migliorato
     
    
    { 
    "cmd": ["javac.bat", "$file"], 
    "file_regex": "^(...*?):([0-9]*):?([0-9]*)", 
    "selector": "source.java" 
    } 
    
    
    • Assicurati di aggiornare il percorso dell'ambiente in modo da sapere dove individuare il javac.bat; Ho inserito il mio sotto l'installazione di java_home.
  4. creare il file javac.bat e renderlo disponibile sul percorso dell'ambiente

     
    
    @echo off 
    javac -Xlint:unchecked %~n1.java 
    start java -ea %~n1 
    
    
  5. Nel mio esempio ho dovuto fare in modo ho mantenuto l'applicazione aperta:

    import java.util.Scanner; 
    
    class Test 
    { 
        public static void main(String[] args) 
        { 
         Scanner reader = new Scanner(System.in); 
         int input = -1; 
    
         while(input != 0) 
         { 
          System.out.println("======================="); 
          System.out.println("What is Your Age? Enter 0 to exit;"); 
          input = reader.nextInt(); 
          System.out.println("You've entered " + input + "\n\n"); 
         } 
        } 
    } 
    

Ora puoi compilare i tuoi file java e scaricarli su una nuova finestra.

+0

Fase 4 può essere modificato per lasciare la connessione aperta come segue: cmd di start/k java -ea% ~ n1 –

+0

Utilizza il seguente così le nuove finestre rimane aperto: iniziare cmd/k java -ea % ~ n1 –

+0

"Errore: impossibile trovare o caricare la classe principale HelloWorld". Qualche soluzione? – Shail