A few ideas off the top of my head
Can we have a getSize() method on Collection. Its a long running gripe, especially when using EL only to find the size property isn't available because Collection wasn't made fully compatible with the JavaBean spec.
Like many I see the VM sharing could have its uses, but we'd need a way to control the startup of these shared spaces too.. via an enhanced JNLP spec? A key part of this would be the need for Isolates which in would seem to suggest a re-engineering of the classloader mechanism which is long past its sell-by date. Isolates and Classloaders are at the top of my list here.
I'd like to see another extension installed into Windows to allow for executable Jars (.jre)? Currently I can't tell wether a jar is executable or not - except by double-clicking. Also many users seem to have jar associated with winzip, powerarchiver or whatever. I'd like a spereate icon & mime type to distinguish these.
A decent Java based browser/html viewer for Swing would be very handy; not easy I know and JDIC has been making progress allowing me to embed the native browser. But trying to embed a heavyweight peer into a lightweight Swing application isn't very practical. SWT has a very definite edge here (being heavyweight by nature).
I've also had a few OS integration issues I've yet to find answers for. One is when invoking a desktop app (via web start) I can't ask for a max-heap of say 30% of the max memory the client has installed. I can only find out memory figures AFTER the app has started and can't change the min/max figures from here (without launching another JVM). Actually I'd really like to say 30% of what the client has installed or an minimum of 128mb -- whichever is larger.
Also can the executable jars also have some of these extra runtime parameters in the manifest.. at the moment its not possible to start a runnable jar with anything but the default 64mb (without going via the command line which kinda defeats the point).
A similar issue is with process/cpu usage (thinking Windows here). Currently I can't reduce the task priority assigned to my Java apps under Windows.. often I'll see my Java IDE to even a simple Swing App rendering a webpage shoot the CPU usage to 100% rendering the clients desktop unusable leading to the old stereotypical Java-app empty grey box effect. I can only change these priorities via the Windows taskmanager setting the Java process to below normal or low. What I may be asking for here is a means to control/throttle thread usage? how do I stop being such a cpu hog and play nice.
I also dislike the way personal firewalls (like the builtin Windows XP SP2 one etc..) treat all Java applications as the same program. It's a bit of a concern that when a XP user installs the JRE they'll get a popup saying some unauthorized program is trying to access the Internet (Java update).. if they click NO at this prompt (and the dialogs pretty much tell them to) they'll disable all of the runtimes networking ability for all Java programs. Dislike the fact I cant distinguish between trusted Java apps and some ropey spyware Applet, its all or nothing (and I'll have to set this again next time the jvm is upgraded). Not sure what can be done here, its just a pain.