@Aleksei
you do not need to install jenkins to every machine you are running you script if you package.
install ssh client with public key of the server(where your single jenkins is installed) and using that single jenkins execute shell script "PATHTOBUNDLEDJRE/java -jar projecttestcode.jar"! using ssh to every machine(for windows cygwin) at one time!
If we packaged jar with bundled jre , I need to just paste that folder into fresh machine
No No.. i do not "say you updated your test code and you need repeat all again manually" I said FRESH MACHINE means I want to configure new machine where jenkins,git,java,maven anything is not installed or I want to add new machine in my test architecture
and double click on batch or .sh file and my script is running... No configuration at all!
My test architecture is ready with new machine without installing jenkins,git,java,maven anything! or any configuration stuff of scheduling for every jenkins I have!
MANAGIBILITY
when company have lots of products in market and they have automation team writing scripts everyday so they would have a build system which will make a fat jar/jars
Yes that jenkins & git + maven part was elaboration of line "so they would have a build system"
and copy/replace that jar to destination machines!
Instead of building at every machine where it is supposed to run, build+package once and replace jars at targeted machines using ssh and you are up! or checkout all of the product code at that machines and build there and run there! as if you want iOS automation you need mac, you have some linux some windows!
simple process to manage complex test setup to keep all test execution clients updated and working! there may be products web,mobile,rest etc..
iOS app we need physical devices such as iphone 4,5,6,7 + ipad mini...
Android app we need physical devices which are multiple!
we can not accomodate all iOS+android +rest+web on a single machine!