I think there are numerous problems with the argument passing in the batch files. That was one of the things that the exe files aimed to improve on. I must admit to having reservations about the new approach. Not so much with the concept but more about relying on the current bat files. That said, I am not sure staying with the current approach is ideal either.
Cheers, Paul. On Thu, Sep 8, 2016 at 4:57 PM, Paco Zarate <[email protected]> wrote: > Hello Keegan > groovy and groovyc are working for me now! thanks!! > > The bat file seems to have an issue on Windows though: > > When the JAVA_HOME is not defined, and the PATH has an element with & > (ampersand), the groovy invocation seems to try to execute the code after > the & (eg. if mysql is installed there is a PATH defined to > "c:\Program Files (x86)\MySQL\MySQL Fabric 1.5 & MySQL Utilities 1.5") > This is the output: > C:\WINDOWS\system32>groovy.bat -v > 'MySQL' is not recognized as an internal or external command, > operable program or batch file. > 'MySQL' is not recognized as an internal or external command, > operable program or batch file. > Groovy Version: 2.4.7 JVM: 1.8.0_101 Vendor: Oracle Corporation OS: > Windows 10 > > I did this another test: I created an empty folder "c:\Programs\sample1 & > sample2" and added it to the PATH just before "%GROOVY_HOME%\bin" > > When i run: > C:\WINDOWS\system32> groovy.bat -v > 'sample2' is not recognized as an internal or external command, > operable program or batch file. > Groovy Version: 2.4.7 JVM: 1.8.0_101 Vendor: Oracle Corporation OS: > Windows 10 > > So it looks like an ampersand in an element in the PATH can affect the > groovy invocation. > > Paco > > > > > On Wed, Sep 7, 2016 at 8:39 PM, Keegan Witt <[email protected]> wrote: > >> I've uploaded new executables to fix the issue with invoking without .exe >> suffix. >> >> -Keegan >> >> On Wed, Sep 7, 2016 at 5:21 PM, Keegan Witt <[email protected]> wrote: >> >>> Paco, >>> Good catch. I'll correct that. >>> >>> Raviteja, >>> That's correct, they are just wrappers. The advantage is that you can >>> set file associations in Windows to an exe, but you can't associate a file >>> type with a bat file. If you could, than you'd be right -- there'd be no >>> reason to have a wrapper. >>> >>> -Keegan >>> >>> On Wed, Sep 7, 2016 at 1:57 PM, Raviteja Lokineni < >>> [email protected]> wrote: >>> >>>> I just glanced over the code and found that the cpp code just seems to >>>> be a wrapper on top of existing bat file. Although it is good that you >>>> wanted to contribute, I don't see the advantage in using exe file iff all >>>> it does is wrap existing bat file. >>>> >>>> Thanks, >>>> Raviteja >>>> >>>> On Wed, Sep 7, 2016 at 5:45 AM, Paco Zarate <[email protected] >>>> > wrote: >>>> >>>>> Hello Keegan! >>>>> >>>>> I was trying the new .exe files and i receive these errors when using >>>>> the commands without .exe: >>>>> >>>>> C:\WINDOWS\system32>groovyc -v >>>>> 'groobat' is not recognized as an internal or external command, >>>>> operable program or batch file. >>>>> >>>>> C:\WINDOWS\system32>groovy -v >>>>> 'grobat' is not recognized as an internal or external command, >>>>> operable program or batch file. >>>>> >>>>> >>>>> Including the .exe seems to work fine: >>>>> >>>>> C:\WINDOWS\system32>groovy.exe -v >>>>> Groovy Version: 2.4.7 JVM: 1.8.0_101 Vendor: Oracle Corporation OS: >>>>> Windows 10 >>>>> >>>>> C:\WINDOWS\system32>groovyc.exe -v >>>>> Groovy compiler version 2.4.7 >>>>> Copyright 2003-2016 The Apache Software Foundation. >>>>> http://groovy-lang.org/ >>>>> >>>>> >>>>> If i remove the JAVA_HOME env variable I get these responses: >>>>> C:\WINDOWS\system32>groovy.exe -v >>>>> 'MySQL' is not recognized as an internal or external command, >>>>> operable program or batch file. >>>>> 'MySQL' is not recognized as an internal or external command, >>>>> operable program or batch file. >>>>> Groovy Version: 2.4.7 JVM: 1.8.0_101 Vendor: Oracle Corporation OS: >>>>> Windows 10 >>>>> >>>>> C:\WINDOWS\system32>groovyc.exe -v >>>>> 'MySQL' is not recognized as an internal or external command, >>>>> operable program or batch file. >>>>> 'MySQL' is not recognized as an internal or external command, >>>>> operable program or batch file. >>>>> Groovy compiler version 2.4.7 >>>>> Copyright 2003-2016 The Apache Software Foundation. >>>>> http://groovy-lang.org/ >>>>> >>>>> Thanks!! >>>>> >>>>> Paco. >>>>> >>>>> On Thu, Sep 1, 2016 at 2:05 PM, Keegan Witt <[email protected]> >>>>> wrote: >>>>> >>>>>> I'm building some new binaries for Windows (groovy.exe, >>>>>> groovyConsole.exe, etc) and am looking for some folks to test and code >>>>>> review it. Their temporary home is here: https://github.com/keega >>>>>> nwitt/groovy-binaries. After I've incorporated any feedback I get, >>>>>> I'll transfer it to a repo under the groovy org on Github (haven't >>>>>> decided >>>>>> yet whether that should be groovy-windows-installer >>>>>> <https://github.com/groovy/groovy-windows-installer> or >>>>>> groovy-native-launcher >>>>>> <https://github.com/groovy/groovy-native-launcher>). >>>>>> >>>>>> To make it easy to test, you can download the compiled binaries from >>>>>> here (https://drive.google.com/folderview?id=0B_uOQFeu84v0TDVkS00 >>>>>> xeE5yNHc&usp=sharing) and put them in your current Groovy >>>>>> installation (whether from zip or installer). >>>>>> >>>>>> The overall approach is to have an exe that calls the matching .bat >>>>>> file. This approach was to avoid a few things I didn't like about the >>>>>> current binaries, namely >>>>>> Windows installer determines 32 or 64 bit version of Java at install >>>>>> time and installs the appropriate groovy.exe, but if you change your Java >>>>>> version later, exe won't be able to run Groovy because it won't be able >>>>>> to >>>>>> find right Java to invoke. >>>>>> Binaries have their own logic to find Java, which adds unnecessary >>>>>> complexity since the batch files maintained by the Groovy team already >>>>>> have >>>>>> this logic. >>>>>> Parameters are hard-coded into the binaries, coupling any change in >>>>>> parameters between Groovy versions to that binary. >>>>>> I'm not a Windows or C++ guy, so there are some things I'd like >>>>>> somebody's thoughts on: >>>>>> Am I following best practices in C++ source and Makefile? >>>>>> Would it be better to have wmain() instead of main()? >>>>>> Any better way to have done resource templating other than* sed*? >>>>>> Would there be a reason to have chosen C over C++? >>>>>> Any non-ASCII character hangups? >>>>>> Running groovy.exe 象.groovy 象 seemed to invoke and pass argument in >>>>>> fine, but it printed the arg as a question mark. Although the current >>>>>> binaries binaries do the same thing, so maybe it's a limitation of* >>>>>> cmd.exe*. >>>>>> Does my strategy of passing args from exe to bat have any edge cases >>>>>> to worry about with the use of system() and CreateProcess()? >>>>>> >>>>>> -Keegan >>>>>> >>>>> >>>>> >>>> >>>> >>>> -- >>>> *Raviteja Lokineni* | Business Intelligence Developer >>>> TD Ameritrade >>>> >>>> E: [email protected] >>>> >>>> [image: View Raviteja Lokineni's profile on LinkedIn] >>>> <http://in.linkedin.com/in/ravitejalokineni> >>>> >>>> >>> >> >
