Hi Tison,

I am not sure what you are asking... groovysh is the "Groovy Shell" so you 
should see a terminal window named "GroovyShell" launched that allows you to 
execute Groovy commands interactively.  This is the expected behaviour.  Or are 
you just pointing out the exception when quitting groovysh?  How did you kill 
groovysh?  With the Unix `kill` command (or Windows equivalent) or using one of 
the "exit" commands in the shell itself (:exit, :x, etc)?

I suspect you may simply want the `groovy` command that you can use to run 
Groovy scripts/programs. 

$ echo "println 'hello world'" > test.groovy
$ cat test.groovy
println 'hello world'
$ groovy test.groovy 
hello world

Hope this helps,
Keith

> On Oct 11, 2018, at 10:54 PM, Tzu-Li Chen <wander4...@gmail.com 
> <mailto:wander4...@gmail.com>> wrote:
> 
> Hi Groovy community,
> 
> I am new to Groovy and when running `groovysh` with "3.0.0-alpha-3, JVM: 
> 1.8.0_171" on macOS, I see a, hmm, Java monitor(?), named "GroovyShell" 
> launched.
> 
> If I kill it, process `groovysh` quit with exception below. I'd like to know 
> if we can suppress the launch of "GroovyShell" process. It switch the focus 
> of cursor and quite annoying for me.
> 
> Best,
> tison.
> 
> [printStackTrace]:
> 
> ➜  ~ groovysh
> Groovy Shell (3.0.0-alpha-3, JVM: 1.8.0_171)
> Type ':help' or ':h' for help.
> -------------------------------------------------------------------------------
> groovy:000> 2018-10-12 10:51:09.084 java[34387:1479007] 
> java.lang.SecurityException: Use of System.exit() is forbidden!
>       at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
>       at 
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
>       at 
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
>       at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
>       at 
> org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:83)
>       at 
> org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:105)
>       at 
> org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:59)
>       at 
> org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:238)
>       at 
> org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:250)
>       at 
> org.codehaus.groovy.tools.shell.util.NoExitSecurityManager.checkExit(NoExitSecurityManager.groovy:51)
>       at java.lang.Runtime.exit(Runtime.java:107)
>       at java.lang.System.exit(System.java:971)
>       at 
> com.apple.eawt._AppEventHandler.performQuit(_AppEventHandler.java:145)
>       at com.apple.eawt.QuitResponse.performQuit(QuitResponse.java:51)
>       at 
> com.apple.eawt._AppEventHandler$_QuitDispatcher.performDefaultAction(_AppEventHandler.java:390)
>       at 
> com.apple.eawt._AppEventHandler$_AppEventDispatcher.dispatch(_AppEventHandler.java:512)
>       at 
> com.apple.eawt._AppEventHandler.handleNativeNotification(_AppEventHandler.java:202)
> 



----------------------
Keith Suderman
Research Associate
Department of Computer Science
Vassar College, Poughkeepsie NY
suder...@cs.vassar.edu




Reply via email to