====== Im JDeveloper eine Consolen Applikation mit Input entwickeln ====== Problem: Wird eine Java Consolen Applikation im JDeveloper gestartet, kann der Anwender nichts in das Consolen Fenster eingeben Lösung: Über den Properity Dialog auf Projektebene den Dialog für die Run Optionen öffnen, "Tool Settings" auswählen und dort "Allow Progam Input" aktivieren. {{ :prog:jdeveloper_set_consolen_input_setting.png?400 | JDeveloper - Consolen Eingabe aktivieren}} Nach der Einstellung Programm im JDeveloper starten und auf Eingabe Feld am unteren Rand der Console achten: {{ :prog:jdeveloper_set_consolen_input_setting_02.png?400 | JDeveloper - Consolen Eingabe aktivieren - Eingabefenster für die Console}} Wenn hier nichts eingegeben werden kann, rechts oben unter "Actions" all Hacken wegnehmen! ====== Beispiel für ein Consolen Input ====== In der JDeveloper IDE Kann leider nicht auf System.getConsole() zugegriffen werden, sehr ärgerlich vor allen für eine Password Eingabe. Daher wird in dieser Methode, falls Console nicht im Zugriff, klassisch über BufferedReader eingelesen. /** * Read User input from the console * @param prompt - Prompt * @param readPassword - if true use readPassword methode * @return String with the input */ public static String readConsole(String prompt, boolean readPassword) { String returnValue = null; char[] password; // try to use the console Console console = System.console(); // read the value from the command-line; // if console is not avalible use Standard in // fix for IDE JDeveloper ! try { if (System.console() != null) { if (readPassword) { password = console.readPassword(" -- " + prompt); returnValue = new String(password); } else { returnValue = console.readLine(" -- " + prompt); } } else { // Write the Prompt //open up standard input BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.print(" -- " + prompt); returnValue = br.readLine(); } } catch (Exception e) { System.out.println("IO error trying to read from console Error::" + e.getMessage()); System.exit(1); } if (readPassword == false) { System.out.println(" -- Read User Input ::" + returnValue); } return returnValue; }