Re: Start shell/REPL without launching java monitor?

2018-10-15 Thread Tzu-Li Chen
 1.png

 2.png

 diag.png

Hi Keith,

Thanks for your reply! I think I know `groovy` command and now I exactly
suffer from `groovysh`. Let me try to speak it clearly.

(on macOS)
1. I open a terminal.
2. Type "groovysh" and 
3. A new window looks like a Java applet, named "Groovy Shell" launched,
and the focus switch to it.
4. I switch the focus back to the terminal, and start to interact with REPL.

What I am suffering is 3 and 4, each time I want to interact with REPL I
have to switch the focus. Think about `jshell` or `python`, the REPL is of
course a process, but not another window and even force switch the focus.

Also photos in attach links, please pay attention to the focus is switched
from 1 to 2.

Best,
tison.


Keith Suderman  于2018年10月15日周一 下午10:44写道:

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


Re: Start shell/REPL without launching java monitor?

2018-10-15 Thread Keith Suderman
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  > 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