В настоящее время я застрял, пытаясь запустить два jar-файла в конвейере с помощью командной строки в Windows 10.
=======================================================================
Это шаги, которые я набрал в консоли:
1. Выполнить: Adder.jar
5
7
2. Выполнить: Doubler.jar
4
3. Выполнить: Adder.jar |Doubler.jar (труба Adder вывод на вход Doubler)
, и это именно то, что я печатаю в консоли:
C:> java -jar "Adder.jar"
5
7
12
C:> java -jar" Doubler.jar "
4
8
C:> java -jar "Adder.jar" |java -jar "Doubler.jar"
Исключение в потоке "main" java.lang.NullPointerException в Adder.main (Adder.java:29)
Исключение в потоке "main" java. lang.NullPointerException at doubler.Doubler.main (Doubler.java:32)
C:>
Исключение нулевого указателя в строке 29 происходит из выражения класса Adder:
String sFirstNumber = con.readLine ();
А вот основной метод из класса Adder, из которого был создан файл jar:
public static void main(String[] args)
{
Console con = System.console();
// if (null == con)
// {
// System.out.println("!! Error accessing console: Run in
// a command window !!");
// return;
// }
// Input two numbers from the input stream
String sFirstNumber = con.readLine();
String sSecondNumber = con.readLine();
int iFirstNumber = Integer.parseInt(sFirstNumber);;
int iSecondNumber = Integer.parseInt(sSecondNumber);;
// Add the numbers
int iTotal = iFirstNumber + iSecondNumber;
// Output the result onto the output stream
con.printf("%d", iTotal);
}
Когда я запускаю один JAR-файл за раз, все работает нормально. Пока я не попытаюсь соединить два файла JAR с "|"команда, что консоль выдает исключение.
Прежде чем я закомментировал оператор if, который проверял, была ли консоль нулевой, консоль распечатала написанное мной сообщение и прервала его.
Консоль, кажется, запускает файл jar на виртуальной машине Java или что-то, когда я использую "|"команда. Почему иначе System.console () будет нулевым, когда я использую "|"команда с двумя файлами JAR и не быть нулевым, когда я запускаю один файл JAR за раз?