Hi,
You can start your application with the System property
-Dnashorn.args=--no-java
This will avoid initializing properties needed for Java access
("Packages", "Java", "java", "javax" etc.). Note that the script can
access Java methods/properties of objects explicitly exposed via
javax.script.ScriptContext/Bindings (if any). If those are also empty,
then global scope gets nothing from Java.
Note this still defines certain extensions like 'load' , 'print' in
global scope as well as "context" (required per jsr223 spec). If you
want, you can manually delete these properties or assign undefined to
these by writing a simple init script that is loaded upfront - before
running the actual script.
Hope this helps,
-Sundar
On Tuesday 21 January 2014 10:45 AM, Peter Michaux wrote:
Hi,
When I create a new Nashorn script engine, it seems to come preloaded with globals like
`print` which are not part of the ECMAScript standard. How can I create an
"empty" environment that only has the globals defined in the standard?
Thanks,
Peter