Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    Perché la classe Console non funziona?

    Ho provato questo codice che era presente sul testo di java che sto leggendo:

    codice:
    package esempi_dal_libro;
    import java.io.*;
    public class Esempio {
          public static void main(String args[]) { 
                String str; 
                Console con; 
             
                // Obtain a reference to the console. 
                con = System.console(); 
                // If no console available, exit. 
                if(con == null) return; 
             
                // Read a string and then display it. 
                str = con.readLine("Enter a string: "); 
                con.printf("Here is your string: %s\n", str); 
              }
    }


    ma non funziona. Qualcuno saprebbe spiegarmi il motivo?

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    non funziona non vuole dire nulla, che errore riscontri?
    RTFM Read That F*** Manual!!!

  3. #3
    Nessun errore, è quello il problema! Io uso Eclipse, clicco su run e nella console non vedo niente, pagina bianca. Il tasto terminate non è rosso così penso che il programma si avvii e poi termini in automatico poco dopo. E' tutto molto strano.

  4. #4
    Se scrivo questo:

    codice:
    package esempi_dal_libro;
    
    import java.io.*;
    
    
    public class Esempio {
    	public static void main(String args[]) {
    		String str;
    		Console con;
    
    
    		// Obtain a reference to the console.
    		con = System.console();
    		// If no console available, exit.
    		if (con == null) {
    			System.out.println("ggg");
    			return;
    		}
    
    
    		// Read a string and then display it.
    		str = con.readLine("Enter a string: ");
    		con.printf("Here is your string: %s\n", str);
    	}
    }
    ottengo questo:

    codice:
    ggg
    Non so dirti altro... Posso solo dirti che il programma parte e poi termina perché viene intercettato il return...

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    javadoc


    public static Console console()Returns the unique Console object associated with the current Java virtual machine, if any.
    Returns:The system console, if any, otherwise null.Since:1.6


    quindi non è un baco, tu becchi null.
    Se non ricordo male da eclipse c'è qualche cosa strana per cui il metodo sopra citato ti ritorna null (ma vai sui ricordi, googla un po)
    RTFM Read That F*** Manual!!!

  6. #6
    Hehehe... che becco null e che devo modificare qualcosa nelle impostazioni di Eclipse lo sapevo anche io!

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    e allora? dobbiamo fare i compiti per te?
    Intanto vedi se eseguendo il tuo programma da command line riesci a beccare la console (io dico di si).

    Fatto questo, prova a leggere qui

    http://stackoverflow.com/questions/1...in-eclipse-ide

    e qui

    http://www.stupidjavatricks.com/2007...console-class/

    il primo result di una ricerca google con le parole chiave console java eclipse
    RTFM Read That F*** Manual!!!

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da giannino1995 Visualizza il messaggio
    Hehehe... che becco null e che devo modificare qualcosa nelle impostazioni di Eclipse lo sapevo anche io!
    No, non è tanto una questione di "impostazione", nel senso che java.io.Console non è usabile se avvii la applicazione da Eclipse per via di un problema (bug) di Eclipse noto (la discussione su stackoverflow indicata da valia lo cita).

    Per come la vedo io, hai diverse possibilità:

    1) Puoi continuare a usare direttamente Console ma poi devi avviare la applicazione da una "vera" console (basta che tieni aperto un prompt dei comandi nella directory più appropriata es. la "home" del progetto e poi avvii con un comando che puoi ripetere facilmente).
    Se vuoi debuggare in Eclipse lanciando dalla console, puoi usare il "remote debugging" (la discussione citata su stackoverflow descrive i passi per farlo).

    2) Creare un piccolo strato software che "nasconde" il fatto di usare Console o altro (es. Scanner). Si può fare in diversi modi e con design differenti. Devi valutare tu se vale la pena o no, dipende da quanto input/output devi fare su console e se vuoi che questo "strato" sia facilmente riutilizzabile in altri tuoi progetti.

    3) Non usi java.io.Console ma qualcos'altro es. Scanner.

    4) Usi una libreria esterna (se esiste) che fa più o meno quanto detto al punto 2).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  9. #9
    A me questa classe non gira neanche su NetBeans.

  10. #10
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da giannino1995 Visualizza il messaggio
    A me questa classe non gira neanche su NetBeans.
    https://netbeans.org/bugzilla/show_bug.cgi?id=68770
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.