Глядя на чьем-то Maven Java проект в Eclipse, я заметил, что один из сохраненных конфигураций прогона имеет следующую команду Maven для запуска:Как вы можете напрямую выводить System.out на консоль в eclipse?
test -Dtest=fooTest -Dcom.awesomesite=System.out
Когда я осмотрел файл fooTest.java, я заметил следующие утверждения:
public final static String BAR = "com.awesomesite";
....
this.whereToWrite = System.getProperty(BAR);
Очевидно, что переменная экземпляра «whereToWrite» представляет, куда должны идти выходные данные. Поскольку я новичок в Java, я просто хочу понять, как прямой вывод System.out выводится на консоль.
Где-то во внутренних элементах eclipse он должен установить 'System.out', чтобы указать на консольное представление. System.out - изменяемое статическое поле –
@LanceJava - это фактически 'final'. Он будет установлен после отражения после запуска jvm, насколько я помню – SomeJavaGuy
Отражение не требуется (и я не думаю, что вы можете установить последнее поле путем отражения), есть [setOut (...)] (https : //docs.oracle.com/javase/7/docs/api/java/lang/System.html#setOut%28java.io.PrintStream%29). Угадать конечное поле является оберткой, а делегат изменен. –