Как собрать Java-программу без графического интерфейса в консольную программу - PullRequest
1 голос
/ 22 апреля 2010

Не знаю, как это хорошо описать, но попробую. Хорошо, я хочу иметь возможность собрать свою Java-программу, чтобы при ее открытии она выглядела и работала точно так же, как в консоли. Таким образом, он читает класс Scanner и печатает нормально, и делает все, что сделал бы, если бы находился в консоли. Я искал вокруг этого и ничего не нашел. Я могу довольно легко создать Java-программу с графическим интерфейсом, но я бы предпочел иметь программу, подобную консоли, которая работает точно так же, как консоль Java, спасибо.

Ответы [ 2 ]

3 голосов
/ 22 апреля 2010

Основано на вашем комментарии:

но я хочу сделать сотни ссылок на время, которое прекрасно работает, используя метод сканера 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 и для каждой строки что-то делает, в этом случае выводит его на консоль.

1 голос
/ 22 апреля 2010

Возможно, вы ищете стандартные входные и выходные элементы класса java.lang.System:

class HelloWorld {

  public static void main(String... argv) {
    System.out.println("Hello, World!");
  }

}

Для обработки ввода вы можете использовать сканер на стандартном входе:

Scanner scanner = new Scanner(System.in);

Если вы хотите стать действительно модным, вы можете напечатать часть вашего вывода в System.err, что является PrintStream точно так же, как System.out.


Из комментария «когда я компилирую свои классы, я получаю файл jar, который ничего не делает, когда я нажимаю на него, что я считаю нормальным, потому что это не графический интерфейс», «Я думаю, что ваша проблема - проблема операционной системы (Windows ?), не проблема Java.

Windows отображает действие «Открыть» для запуска файлов JAR с javaw.exe, которое не создает консоль. Вам нужно либо изменить сопоставление файлов по умолчанию на каждом компьютере, либо создать что-то вроде командного файла, который отменяет это поведение по умолчанию.

Вы могли бы написать две программы: первая - это ваше собственное "консольное" Java-приложение, а другая - просто оболочка, которая использует Runtime.exec() для создания консоли Windows (cmd) и выполняет первая программа внутри него.

Существуют также проекты с открытым исходным кодом (проверьте Sourceforge), которые оборачивают ваш JAR в исполняемый файл Windows.

...