That is true. Writing a function was always an option, but ScriptContext's setReader(Reader) method made me think that there would be a way to use it like the writer. But I guess it all makes sense now.
Thanks to both of you for your help. Burak On 2/27/17, Sundararajan Athijegannathan <sundararajan.athijegannat...@oracle.com> wrote: > I think print and readLine cannot be compared. > > Differences: > > * print is always available. Both in -scripting mode as well as normal > mode. > * readLine extension (as Jim pointed out) is available only in > -scripting mode. (scripting mode is meant "shell" style scripting with > nashorn) > * While it is usually okay/safe to use arbitrary output/print stream and > direct output there, read/readLine is expected read from console (meant > for interactive user input). > > That said, it should be straightforward to define your own read/readLine > replacement function that uses ScriptContext's Reader. > > -Sundar > > On 26/02/17, 10:21 AM, Koray wrote: >> That expanded my horizon, thank you. >> >> However even though print() utilizes the given writer, E.G: Socket's >> OutputWriter, readLine still uses the System.in even though I use >> engine.getContext().setReader(InputStreamReader of a Socket). Would >> that be some kind of bug? Because that makes Scriptcontext.setReader() >> method kind of useless. >> >> Burak >> On 2/25/17, James Laskey<james.las...@oracle.com> wrote: >>> You have to be in scripting mode to to use those functions. >>> https://docs.oracle.com/javase/8/docs/technotes/guides/scripting/nashorn/shell.html. >>> It's possible to add command line options when using from java. >>> https://wiki.openjdk.java.net/display/Nashorn/Nashorn+jsr223+engine+notes >>> >>> -- Jim >>> >>> Sent from my iPhone >>> >>>> On Feb 25, 2017, at 1:41 PM, Koray<burakko...@gmail.com> wrote: >>>> >>>> This is exactly what I'm looking for. Is it possible to do this from >>>> inside a Java application? I have tried readLine() and readFully() >>>> methods before, but I'm guessing they are meant for the commandline >>>> tool only. >>>> >>>> Burak >>>> On 2/25/17, Jim Laskey (Oracle)<james.las...@oracle.com> wrote: >>>>>>> jjs -scripting >>>>> jjs> var name = readLine("Your name>> "); >>>>> Your name>> Jim >>>>> jjs> print(name) >>>>> Jim >>>>> >>>>> That sort of thing? >>>>> >>>>> — Jim >>>>> >>>>> >>>>>> On Feb 25, 2017, at 5:24 AM, Koray<burakko...@gmail.com> wrote: >>>>>> >>>>>> Hello, >>>>>> >>>>>> I apologize if this is not the place to ask, but I couldn't get a >>>>>> satisfying answer from anywhere else so this is kind of my last >>>>>> resort. >>>>>> >>>>>> Is there any built-in function to get input from a user when using >>>>>> NashornScriptEngine? print() method allows us to utilize both the >>>>>> default OutputStreamWriter (System.out) and any writers that we set >>>>>> using ScriptContext, but how can I make use of the reader which is >>>>>> used by the engine? >>>>>> >>>>>> Thank you, >>>>>> Burak >>>>> >>>> >>>> -- >>>> saygılarımla >>>> Burak Koray Polat >> > -- saygılarımla Burak Koray Polat