Я не знаю, как это описать хорошо, но я попытаюсь. Хорошо, я хочу иметь возможность создать свою Java-программу, чтобы при открытии она выглядела и работала точно так же, как в консоли. Таким образом, он читает класс Scanner и печатает нормально, и делает все, что делал бы, если бы был в консоли. Я искал вокруг для этого и ничего не нашел. Я могу довольно легко создать java-программу с графическим интерфейсом, но я бы предпочел иметь терминал, консольную программу, которая работает точно так же, как java-консоль, спасибо.
Как превратить вашу Java-программу без графического интерфейса в консольную программу
Ответы (2)
Возможно, вы ищете стандартные элементы ввода и вывода java.lang.System
класс:
class HelloWorld {
public static void main(String... argv) {
System.out.println("Hello, World!");
}
}
Для обработки ввода вы можете использовать Scanner на стандартном вводе:
Scanner scanner = new Scanner(System.in);
Если вы хотите получить что-то особенное, вы можете напечатать часть своего вывода в System.err
, который является PrintStream
таким же, как System.out
.
Из комментария «когда я компилирую свои классы, я получаю файл jar, который ничего не делает, когда я нажимаю на него, что я считаю нормальным, потому что это не графический интерфейс», я думаю, что ваша проблема связана с проблемой операционной системы (Windows?), не проблема с Явой.
Windows отображает действие «Открыть» для файлов JAR для запуска с помощью javaw.exe
, который не создает консоль. Вам нужно либо изменить ассоциацию файлов по умолчанию на каждой машине, либо создать что-то вроде пакетного файла, который переопределяет это поведение по умолчанию.
Вы можете написать две программы: первая — ваше фактическое «консольное» Java-приложение, а другая — просто оболочка, которая использует Runtime.exec()
для создания консоли Windows (cmd
) и запускает в ней первую программу.
Существуют также проекты с открытым исходным кодом (проверьте Sourceforge), которые заключают ваш JAR в исполняемый файл Windows.
На основании вашего комментария:
но я хочу делать сотни ссылок за раз, что отлично работает с использованием метода сканера nextLine(), я могу просто опубликовать 100 или 200 ссылок в консоли Java, и он автоматически их отсортирует.
Я предполагаю, что вы хотите, это пакетная обработка. У вас может быть 100 или 200 ссылок в текстовом файле, по одной на строку. И затем ваша программа Java:
import java.io.*;
public class Batch{
public static void main(String args[]){
try{
FileInputStream fstream = new FileInputStream("sample.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(fstream));
String line;
while((line = br.readLine()) != null){
//Do something with your line
System.out.println(line);
}
in.close();
}catch(IOException ioe){
System.err.println(ioe.getMessage());
}
}
}
Вы компилируете эту программу, открываете консоль и запускаете ее:
java Batch
Он читает ваш файл sample.txt и для каждой строки что-то делает, в данном случае выводит его на консоль.