Java 8 Nashorn Space Problem

UPDATE:

I have a gross solution that works, but I don't like it:

jjs> NANO_HOME = '"/ Users / XXXXXX / Desktop / TEST DIR"'; jjs> $ EXEC ('xargs ls', "$ {NANO_HOME}");


I use Java 8 Nashorn to create shell scripts and am having problems listing files in a directory if the directory name contains a space:

$ jjs -scripting
jjs> `ls /Users/XXXXXX/Desktop/`
TEST DIR
jjs> `ls /Users/XXXXXX/Desktop/TEST DIR`

jjs> $ERR
ls: /Users/XXXXXX/Desktop/TEST: No such file or directory
ls: DIR: No such file or directory  

jjs> `ls "/Users/XXXXXX/Desktop/TEST DIR"`

jjs> $ERR
ls: "/Users/XXXXXX/Desktop/TEST: No such file or directory
ls: DIR": No such file or directory

jjs> `ls /Users/XXXXXX/Desktop/TEST\u0020DIR`

jjs> $ERR
ls: /Users/XXXXXX/Desktop/TEST: No such file or directory
ls: DIR: No such file or directory

jjs> `ls /Users/XXXXXX/Desktop/TEST\ DIR`

jjs> $ERR
ls: /Users/XXXXXX/Desktop/TEST: No such file or directory
ls: DIR: No such file or directory

I tried dozens of variations and nothing works ...

+4
source share
2 answers

Unfortunately, it is similar to the backquote syntax for invoking system commands (as well as a function $EXECthat does the same) mishandles arguments containing spaces.

exec ScriptingFunctions.java . , StringTokenizer, , ProcessBuilder. , , , .. .

, . $EXEC , , .

UPDATE

JDK-8049300 .

+3

Try

ls \"/Users/XXXXX/Desktop/TEST DIR\"

? ( Windows, ).

0

Source: https://habr.com/ru/post/1546940/


All Articles