javapropertieslinefeed

Setting Java VM line.separator


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?


Solution

  • 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.