В Java вновь созданные выходные потоки рассматривают свойство разделителя системной строки, чтобы выбирать между окончаниями строк Unix и Windows, но System.out уже создан к моменту запуска вашей программы, поэтому изменение этого свойства не влияет на этот поток.
Если вы хотите, чтобы System.out
использовала окончание строк Unix, несмотря на работу в Windows, есть ли способ сделать это, кроме как исключить println()
и всегда использовать print("...\n")
?
Вы можете вручную установить System.out
. Иногда я использую его для перенаправления отпечатков в файл.
Например:
System.setOutput(new PrintStream("whatever_file.txt"));
В аналогичном смысле вы можете изменить PrintStream
чтобы принять во внимание ваши строки.
В качестве альтернативы вы можете напрямую установить свойство символа окончания строки:
System.setProperty("line.separator", "\n");
Это также можно сделать при создании JVM с помощью обычного средства настройки свойств:
java -jar bla.jar -Dline.seperator='\n'
System.out
не работает правильно в Unix?