"Java Virtual Machine Capable"

If something is Java virtual machine capable, does this imply (or perhaps even mean the same thing as) that it can run java applications?


It probably just means it can run the JVM. Which means it isn’t hideously old or a very, very tiny embedded system. In short, it sounds like it doesn’t really mean much of anything at all.

And… what I was asking was whether that implies it can run java applications. I can’t tell what the answer to this question is from your post.


If it can run JVM, it should be able to run Java apps. Where did you see this? Java is meant to run about anywhere - does this machine brag that it can do addition also?

Sorry. I thought you knew or could look up what the JVM is.

If the computer can run the JVM, odds are good it can run a good deal of Java applications. Some Java applications rely on optional parts of the JVM which aren’t installed everywhere and some rely on things outside the JVM. ‘Write Once, Run Everywhere’ was never intended to be a unversal dictate: JVMs were always meant to scale from servers to set-top boxes, and you simply don’t need the same environment everywhere.

I’m reading rumors about google’s possible upcoming ipod-like cellphone offering.


I looked at the wikipedia article for it and after reading the whole thing, still wasn’t quite sure whether “java virtual machine capable” implies" can run java applications." I thought probably so, based on my reading, but I wasn’t quite sure, since the article never said so in so many words. I wanted to make sure.

So I decided to ask here. I figured someone here would be able to answer a yes or no question, even if the answer was “yes but” or “no but.”


I’m going to be a bit loose with my terminology; if I make any gross errors, I’d appreciate it if someone would please correct me.

There are two “flavors” of Java available: standard and microedition. The microedition is aimed at smaller devices (e.g., cell phones); the standard requires more powerful hardware.

From those flavors, there are three “configurations”: (1) the standard JDK/SDK, which runs the “full-fledged” Java language, (2) the CDC (Connected Device Configuration), which runs a subset of the JDK, and (3) the CLDC, which is an even more limited subset of the CDC.

All use a JVM, but do not provide the same capabilities. For instance (IIRC), the CLDC does not support floating point numbers; one only has integer math available. Other Java packages/libraries are only partially implemented in configurations (2) and (3). Since you mention it’s in reference to a cell-phone-like device, I suspect they’re talking about either a CDC or CLDC configuration.

Thanks for that reply, Digital Stimulus. It hit the spot.

What I want is a handheld device capable of web browsing with which I can play Chess and Go live online. As things presently stand, this pretty much requires Java. But I don’t know if the applications people are currently using for this require the “full” version or one of the “scaled down” versions you mentioned.

I’ll just cross my fingers.


This is what has decided me not to get the Ipod Touch–no Java!

No problem. I was looking into Java ME last year sometime, but found that I couldn’t use it; the software I was writing relied pretty heavily on features from 1.5 that weren’t available at the time (e.g., the improved typing). The reference implementations that I found only supported up through 1.4.

I seem to remember that another limitation had to do with graphics support. Whether that was swing, awt, or something else, I no longer remember. Besides, a lot may have changed in the interim.

It looks like the Wikipedia article on Java ME is pretty informative. Also, look at the Sun Developer Network site; there’s at least one article specifically concerning mobile phone development.