Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 038D6200B8E for ; Mon, 26 Sep 2016 20:19:18 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 01D5F160AC8; Mon, 26 Sep 2016 18:19:18 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 6F4E7160ACA for ; Mon, 26 Sep 2016 20:19:16 +0200 (CEST) Received: (qmail 71107 invoked by uid 500); 26 Sep 2016 18:19:15 -0000 Mailing-List: contact users-help@groovy.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: users@groovy.apache.org Delivered-To: mailing list users@groovy.apache.org Received: (qmail 71097 invoked by uid 99); 26 Sep 2016 18:19:15 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd2-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 26 Sep 2016 18:19:15 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd2-us-west.apache.org (ASF Mail Server at spamd2-us-west.apache.org) with ESMTP id 048B21A53A1 for ; Mon, 26 Sep 2016 18:19:15 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 2.898 X-Spam-Level: ** X-Spam-Status: No, score=2.898 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_REPLY=1, HTML_MESSAGE=2, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001] autolearn=disabled Authentication-Results: spamd2-us-west.apache.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com Received: from mx2-lw-us.apache.org ([10.40.0.8]) by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024) with ESMTP id 3qtdDTVjckDo for ; Mon, 26 Sep 2016 18:19:12 +0000 (UTC) Received: from mail-qk0-f176.google.com (mail-qk0-f176.google.com [209.85.220.176]) by mx2-lw-us.apache.org (ASF Mail Server at mx2-lw-us.apache.org) with ESMTPS id D40F95FC23 for ; Mon, 26 Sep 2016 18:19:11 +0000 (UTC) Received: by mail-qk0-f176.google.com with SMTP id n185so174365437qke.1 for ; Mon, 26 Sep 2016 11:19:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=lPP+Wcc5eWs4M88Rz6y6oOgEeNtI3yk5i6M9tyO/Eoo=; b=NtDsvoFSaSGNyEJUpA28cK/vuTHSm/atuQHYriNTvWGqGpd3kJcAtUQJlKTcq4qdlo AoGeRrDdDtui9+zcLVZ0wdRFpQ85w3BzAQuW2GDqOy5vunbHY39mWbqV973SEs4AYo6h 9t1tIbC578qnNNuf0RxYqxZXPV/9a1wVd1hJnIaEyPE8IOsEQrlQp05nQWyw1mKHLuxI jegE2fvW+758rB8vY9zHkxof8TvbI+T6ucImj69oBd+p4Dis6lGen3r3iBIP7XjFD70J MT+mBx41jvVT1whsUT7/X4Bm2E+0vJR9GpxlL5Nzrv8vaab48hcJ/huwJjMEoMAdnRnu lJlA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=lPP+Wcc5eWs4M88Rz6y6oOgEeNtI3yk5i6M9tyO/Eoo=; b=ZTnTUQYnFWsJS+d+LGbIVKwRyWX4M+hLwCMv5PFltaUzOsIojpNgMsSmfvaP80qYUs hLemFKfCMTnsx5GlKyDzPlPJEu7tQ7kn7qh4sY1SG2eZQohZOdOzy0wsGsX+sdTXAX11 gYmUW7MdgLDU2eeN7d+/KSIkH+eQSnQuuWFy5/i6UdoYOIkUaPLqLSU2H1nynxNysw59 3VM4sRRaqZ4VECfmPSSNI0sXikfLmRIJ9L+em4sKgIgHCq1oW1qieK5yQRmYdw63c883 0baS3ivQYTLkwr4kR6XlRM3n02COtT6kjoiSgq1R93cdJ/JO2fgPptx9aZXoG5O8K4kD KOAw== X-Gm-Message-State: AA6/9RkRPZMg/walNb9pCoMP26C00hIHHoyJlFQrFlS6aJbAsfRAkOudjwYfFTUJUCLBM9fCMlIDMtXKmu32eA== X-Received: by 10.55.141.199 with SMTP id p190mr24580202qkd.185.1474913951255; Mon, 26 Sep 2016 11:19:11 -0700 (PDT) MIME-Version: 1.0 Received: by 10.140.84.168 with HTTP; Mon, 26 Sep 2016 11:18:50 -0700 (PDT) In-Reply-To: References: <57D15915.1060502@gmx.org> From: Keegan Witt Date: Mon, 26 Sep 2016 14:18:50 -0400 Message-ID: Subject: Re: Looking for testers & feedback: new Groovy binaries for Windows To: users@groovy.apache.org Content-Type: multipart/alternative; boundary=94eb2c081fde2391d4053d6d2afd archived-at: Mon, 26 Sep 2016 18:19:18 -0000 --94eb2c081fde2391d4053d6d2afd Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable I started experimenting with launch4j, and have put that experiment in this repo: https://github.com/keeganwitt/groovy-launch4j. I've uploaded binaries into same place I previous linked. The first binaries I uploaded are in batWrapper.zip, and the new launch4j based binaries are in launch4j.zip if anyone wants to try them out. At the moment, I only have binaries that call Java (i.e. not bundled with Java). -Keegan On Fri, Sep 9, 2016 at 10:43 PM, Keegan Witt wrote: > Hmm, maybe the bat files aren't as robust as I assumed and I should > rethink the approach. > > If we went the GCJ route, we'd still have to implement our own logic to > locate Java binaries (similar to how C code does today), right? That'd b= e > an option, though I'm a little hesitant to start relying on something tha= t > looks like hasn't been updated in in several years and only supports Java > 1.4 and some of Java 5. > Another option would be Launch4J, which is what I was originally > considering. If we did that, we could even create 2 sets of binaries -- = 1 > with a bundled JRE, and 1 without. What kinda drew me to that approach w= as > that it already had its own logic for locating Java. I'll do some readin= g > on both options. > > -Keegan > > On Thu, Sep 8, 2016 at 8:27 AM, Jochen Theodorou > wrote: > >> Maybe a stupid question... but couldn't we write an exe in Java and >> compile using gcj. The exe would spawn a new "normal" JVM and do the >> argument handling. Unlike the C variant there would be more people able = to >> handle this. >> >> bye Jochen >> >> On 08.09.2016 11:13, Paul King wrote: >> >>> 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 >> > 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 befor= e >>> "%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 >> > 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 >>> > 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, bu= t >>> 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 >>> >> > wrote: >>> >>> I just glanced over the code and found that the cpp cod= e >>> 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 >>> >> > 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 externa= l >>> command, >>> operable program or batch file. >>> 'MySQL' is not recognized as an internal or externa= l >>> 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 externa= l >>> command, >>> operable program or batch file. >>> 'MySQL' is not recognized as an internal or externa= l >>> 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 >>> = > >>> 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/keeganwitt/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 >>> begroovy-windows-installer >>> >> ovy-windows-installer> orgroovy-native-launcher >>> >> ovy-native-launcher>). >>> >>> To make it easy to test, you can download the >>> compiled binaries from here >>> (https://drive.google.com/fold >>> erview?id=3D0B_uOQFeu84v0TDVkS00xeE5yNHc&usp=3Dsharing >>> >> erview?id=3D0B_uOQFeu84v0TDVkS00xeE5yNHc&usp=3Dsharing>) >>> >>> and put them in your current Groovy installatio= n >>> (whether from zip or installer). >>> >>> The overall approach is to have an exe that >>> calls the matching .bat file. This approach wa= s >>> 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 th= e >>> 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 Groov= y >>> 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? >>> Runninggroovy.exe =E8=B1=A1.groovy =E8=B1=A1 se= emed 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 ba= t >>> have any edge cases to worry about with the use >>> of system() andCreateProcess()? >>> >>> -Keegan >>> >>> >>> >>> >>> >>> -- >>> *Raviteja Lokineni* | Business Intelligence Developer >>> TD Ameritrade >>> >>> E: raviteja.lokineni@gmail.com >>> >>> >>> View Raviteja Lokineni's profile on LinkedIn >>> >>> >>> >>> >>> >>> >>> > --94eb2c081fde2391d4053d6d2afd Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
I started experimenting with launch4j, and have put that e= xperiment in this repo:=C2=A0https://github.com/keeganwitt/groovy-lau= nch4j.=C2=A0 I've uploaded binaries into same place I previous link= ed.=C2=A0 The first binaries I uploaded are in batWrapper.zip, and the new = launch4j based binaries are in launch4j.zip if anyone wants to try them out= .=C2=A0 At the moment, I only have binaries that call Java (i.e. not bundle= d with Java).

-Keegan

On Fri, Sep 9, 2016 at 10:43 PM, Keegan = Witt <keeganwitt@gmail.com> wrote:
Hmm, maybe the bat files aren't as = robust as I assumed and I should rethink the approach.

=
If we went the GCJ route, we'd still have to implement our own log= ic to locate Java binaries (similar to how C code does today), right?=C2=A0= That'd be an option, though I'm a little hesitant to start relying= on something that looks like hasn't been updated in in several years a= nd only supports Java 1.4 and some of Java 5.
Another option woul= d be Launch4J, which is what I was originally considering.=C2=A0 If we did = that, we could even create 2 sets of binaries -- 1 with a bundled JRE, and = 1 without.=C2=A0 What kinda drew me to that approach was that it already ha= d its own logic for locating Java.=C2=A0 I'll do some reading on both o= ptions.
=
-Keegan

On Thu, Sep 8, 2016 at 8:27 AM, Jochen Theodorou = <blackdrag@gmx.or= g> wrote:
Maybe a stupid qu= estion... but couldn't we write an exe in Java and compile using gcj. T= he exe would spawn a new "normal" JVM and do the argument handlin= g. Unlike the C variant there would be more people able to handle this.

bye Jochen

On 08.09.2016 11:13, Paul King wrote:
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 <contacto@nazcasistemas.com
<mailto:= contacto@nazcasistemas.com>> wrote:

=C2=A0 =C2=A0 Hello Keegan
=C2=A0 =C2=A0 groovy and groovyc are working for me now! thanks!!

=C2=A0 =C2=A0 The bat file seems to have an issue on Windows though:

=C2=A0 =C2=A0 When the JAVA_HOME is not defined, and the PATH has an elemen= t with
=C2=A0 =C2=A0 & (ampersand), the groovy invocation seems to try to exec= ute the
=C2=A0 =C2=A0 code after the & (eg. if mysql is installed there is a PA= TH defined to
=C2=A0 =C2=A0 "c:\Program Files (x86)\MySQL\MySQL Fabric 1.5 & MyS= QL Utilities 1.5")
=C2=A0 =C2=A0 This is the output:
=C2=A0 =C2=A0 C:\WINDOWS\system32>groovy.bat -v
=C2=A0 =C2=A0 'MySQL' is not recognized as an internal or external = command,
=C2=A0 =C2=A0 operable program or batch file.
=C2=A0 =C2=A0 'MySQL' is not recognized as an internal or external = command,
=C2=A0 =C2=A0 operable program or batch file.
=C2=A0 =C2=A0 Groovy Version: 2.4.7 JVM: 1.8.0_101 Vendor: Oracle Corporati= on OS:
=C2=A0 =C2=A0 Windows 10

=C2=A0 =C2=A0 I did this another test: I created an empty folder
=C2=A0 =C2=A0 "c:\Programs\sample1 & sample2" and added it to= the PATH just before
=C2=A0 =C2=A0 "%GROOVY_HOME%\bin"

=C2=A0 =C2=A0 When i run:
=C2=A0 =C2=A0 C:\WINDOWS\system32> groovy.bat -v
=C2=A0 =C2=A0 'sample2' is not recognized as an internal or externa= l command,
=C2=A0 =C2=A0 operable program or batch file.
=C2=A0 =C2=A0 Groovy Version: 2.4.7 JVM: 1.8.0_101 Vendor: Oracle Corporati= on OS:
=C2=A0 =C2=A0 Windows 10

=C2=A0 =C2=A0 So it looks like an ampersand in an element in the PATH can a= ffect
=C2=A0 =C2=A0 the groovy invocation.

=C2=A0 =C2=A0 Paco




=C2=A0 =C2=A0 On Wed, Sep 7, 2016 at 8:39 PM, Keegan Witt <keeganwitt@gmail.com
=C2=A0 =C2=A0 <mailto:keeganwitt@gmail.com>> wrote:

=C2=A0 =C2=A0 =C2=A0 =C2=A0 I've uploaded new executables to fix the is= sue with invoking
=C2=A0 =C2=A0 =C2=A0 =C2=A0 without .exe suffix.

=C2=A0 =C2=A0 =C2=A0 =C2=A0 -Keegan

=C2=A0 =C2=A0 =C2=A0 =C2=A0 On Wed, Sep 7, 2016 at 5:21 PM, Keegan Witt
=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 <keeganwitt@gmail.com <mailto:keeganwitt@gmail.com>> wrote:
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Paco,
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Good catch.=C2=A0 I'll correc= t that.

=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Raviteja,
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 That's correct, they are just= wrappers.=C2=A0 The advantage is
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 that you can set file association= s in Windows to an exe, but
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 you can't associate a file ty= pe with a bat file.=C2=A0 If you
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 could, than you'd be right --= there'd be no reason to have a
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 wrapper.

=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 -Keegan

=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 On Wed, Sep 7, 2016 at 1:57 PM, R= aviteja Lokineni
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 <raviteja.lokineni@gmail.com
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 <mailto:raviteja.lokineni@gmail.com= >> wrote:

=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 I just glanced over= the code and found that the cpp code
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 just seems to be a = wrapper on top of existing bat file.
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Although it is good= that you wanted to contribute, I
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 don't see the a= dvantage in using exe file iff all it
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 does is wrap existi= ng bat file.

=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Thanks,
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Raviteja

=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 On Wed, Sep 7, 2016= at 5:45 AM, Paco Zarate
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 <contacto@nazcasistemas.com=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 <mailto:contacto@nazcasist= emas.com>> wrote:

=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Hello= Keegan!

=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 I was= trying the new .exe files and i receive these
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 error= s when using the commands without .exe:

=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 C:\WI= NDOWS\system32>groovyc -v
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 '= groobat' is not recognized as an internal or
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 exter= nal command,
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 opera= ble program or batch file.

=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 C:\WI= NDOWS\system32>groovy -v
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 '= grobat' is not recognized as an internal or
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 exter= nal command,
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 opera= ble program or batch file.


=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Inclu= ding the .exe seems=C2=A0 to work fine:

=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 C:\WI= NDOWS\system32>groovy.exe -v
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Groov= y Version: 2.4.7 JVM: 1.8.0_101 Vendor: Oracle
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Corpo= ration OS: Windows 10

=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 C:\WI= NDOWS\system32>groovyc.exe -v
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Groov= y compiler version 2.4.7
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Copyr= ight 2003-2016 The Apache Software Foundation.
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 http://= groovy-lang.org/


=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 If i = remove the JAVA_HOME env variable I get these
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 respo= nses:
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 C:\WI= NDOWS\system32>groovy.exe -v
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 '= MySQL' is not recognized as an internal or external
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 comma= nd,
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 opera= ble program or batch file.
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 '= MySQL' is not recognized as an internal or external
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 comma= nd,
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 opera= ble program or batch file.
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Groov= y Version: 2.4.7 JVM: 1.8.0_101 Vendor: Oracle
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Corpo= ration OS: Windows 10

=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 C:\WI= NDOWS\system32>groovyc.exe -v
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 '= MySQL' is not recognized as an internal or external
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 comma= nd,
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 opera= ble program or batch file.
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 '= MySQL' is not recognized as an internal or external
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 comma= nd,
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 opera= ble program or batch file.
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Groov= y compiler version 2.4.7
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Copyr= ight 2003-2016 The Apache Software Foundation.
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 http://= groovy-lang.org/

=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Thank= s!!

=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Paco.=

=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 On Th= u, Sep 1, 2016 at 2:05 PM, Keegan Witt
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 <<= a href=3D"mailto:keeganwitt@gmail.com" target=3D"_blank">keeganwitt@gmail.c= om <mailto:keeganwitt@gmail.com>>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 wrote= :

=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 I'm building some new binaries for Windows
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 (groovy.exe, groovyConsole.exe, etc) and am
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 looking for some folks to test and code review
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 it.=C2=A0 Their temporary home is here:
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 https://github.com/keeganwitt/groovy-bi= naries
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 <https://github.com/keeganwitt/groov= y-binaries>.=C2=A0 After
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 I've incorporated any feedback I get, I'll
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 transfer it to a repo under the groovy org on
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 Github (haven't decided yet whether that should
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 begroovy-windows-installer
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 <https://github.com/groovy/groo= vy-windows-installer> orgroovy-native-launcher
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 <https://github.com/groovy/groovy= -native-launcher>).

=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 To make it easy to test, you can download the
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 compiled binaries from here
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 (h= ttps://drive.google.com/folderview?id=3D0B_uOQFeu84v0TDVkS00xeE5y= NHc&usp=3Dsharing
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 <https://drive.google.com/folderview?id=3D0B_uOQFeu84v0TDVkS00xe= E5yNHc&usp=3Dsharing>)

=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 and put them in your current Groovy installation
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 (whether from zip or installer).

=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 The overall approach is to have an exe that
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 calls the matching .bat file.=C2=A0 This approach was
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 to avoid a few things I didn't like about the
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 current binaries, namely
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 Windows installer determines 32 or 64 bit
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 version of Java at install time and installs the
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 appropriate groovy.exe, but if you change your
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 Java version later, exe won't be able to run
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 Groovy because it won't be able to find right
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 Java to invoke.
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 Binaries have their own logic to find Java,
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 which adds unnecessary complexity since the
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 batch files maintained by the Groovy team
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 already have this logic.
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 Parameters are hard-coded into the binaries,
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 coupling any change in parameters between Groovy
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 versions to that binary.
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 I'm not a Windows or C++ guy, so there are some
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 things I'd like somebody's thoughts on:
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 Am I following best practices in C++ source and
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 Makefile?
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 Would it be better to have wmain() instead of
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 main()?
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 Any better way to have done resource templating
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 other than/sed/?
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 Would there be a reason to have chosen C over C++?
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 Any non-ASCII character hangups?
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 Runninggroovy.exe =E8=B1=A1.groovy =E8=B1=A1 seemed to invoke
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 and pass argument in fine, but it printed the
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 arg as a question mark.=C2=A0 Although the current
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 binaries binaries do the same thing,
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 so maybe it's a limitation of/cmd.exe/.
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 Does my strategy of passing args from exe to bat
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 have any edge cases to worry about with the use
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 of system() andCreateProcess()?

=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 -Keegan





=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 --
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 *Raviteja Lokineni*= | Business Intelligence Developer
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 TD Ameritrade

=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 E: raviteja.lokineni@gmail.co= m
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 <mailto:raviteja.lokineni= @gmail.com>

=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 View Raviteja Lokin= eni's profile on LinkedIn
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 <http://in.linkedin.com/in/ravitejalokineni>







--94eb2c081fde2391d4053d6d2afd--