Has anybody found a way how to specify the Java line.separator
property on VM startup? I was thinking of something like this:
java -Dline.separator="\n"
But this doesn't interprete the "\n" as linefeed character. Any ideas?
Try using java -Dline.separator=$'\n'
. That should do the trick, at least in bash.
Here is a test-run:
aioobe@r60:~/tmp$ cat Test.java
public class Test {
public static void main(String[] args) {
System.out.println("\"" + System.getProperty("line.separator") + "\"");
}
}
aioobe@r60:~/tmp$ javac Test.java && java -Dline.separator=$'\n' Test
"
"
aioobe@r60:~/tmp$
Note:
The expression $''
uses the Bash feature ANSI-C Quoting. It expands backslash-escaped characters, thus $'\n'
produces a line feed (ASCII code 10) character, enclosed in single quotes. See Bash manual, section 3.1.2.4 ANSI-C Quoting.