When starting a small software business what would be ideal and why? I mean in the context of technologies
1- Stick with only one technology ( ex: only Java )
2- Go for several technologies ( Java , .NET ....)
if answer is no1 , how to decide a suitable technology.
Think sensible. M;ultiple technologies are multiple times the need of knowledge (sorry, good people specialize - yes, I do know java,from 10 years ago, but I do .NET ever since) and infrastructure (build servers etc.) AND time (yes, they may be similar, but there still is overhead - every bug must be fixed multiple times and tested etc.
A small vertical stack is superior from that. Once you hit a good income side you may decide it is worth pursuing multiple techs at the same time, but not at the beginning.
That said - I see .NET superior to java IF you can live with the mostly Microsoft only / Windows only environment (which still accustoms for 90% or more of the desktops - seres dont matter because every larger shop can host a .NET server). Why? It has a higher more widely used stack, which makes it easier to deal with it.
Costs are a non-issue - MS has great programs for the first years of startups. And later, sorry, the cost of a MSDN license per developer are small compared to a decent salary anyway.
This is 100% NOT a technology decision - it is an economic one. Every cost you put up has to have a justification, especially in a startup phase. I personally would try to build a stack where I dont have to hire multiple people to do what otherwise less people can be good at.
Basically I think you should become really good with one first ... then consider taking on new technologies otherwise you won't get anywhere deep with any of them.
As for which one to choose? Well thats much harder,
Both JAVA and .NET, in general tick all the boxes, so it comes down to, what do you enjoy working on more? because its your life for the next X years you better like the language, the development environemnt, the community and everything else that goes with the choice.