<p>I have a long URL with tons of parameters that I want to open in the default browser from Java on a Windows system using</p>

<pre><code>Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler "+url)
</code></pre>

<p>For short URLs like "<a href="http://www.google.com" rel="nofollow noreferrer">http://www.google.com</a>" this works fine. But for long URLs (say, 2000 characters), this simply does absolutely nothing at all: no exception or anything of the sort, it is simply ignored.</p>

<p>Is there a character limit a) for a Runtime.exec command or b) for the rundll32 url.dll command? If so, what is the limit?</p>

You will be running up against
this (archived)
operating system/browser specific maximum URL length problem:
For "rundll32 url.dll" (i.e. Microsoft IE) you will be limited to 2,083 characters (including http://).
From where I sit you have two alternatives:
Build (or use) a TinyURL-style service
that turns your long-urls into
short, redirected ones. However even
here you are going to run into the
same URL length issue, just within
the browser itself rather than your
Runtime() statement. e.g. The browser window would open, go to the short-URL which would perform the redirect to the long-URL and fail.
Use a POST request and bury some or
all of your URL parameters within
it. Rather than using a GET call you
can supply very long parameters
within the body of an HTTP POST request. This
would not be as simple as your example code. In fact this maybe quite tricky (or impossible) with the rundll32 url.dll combination (I am not familiar with it)...