The professional, friendly Java community. 21,500 members and growing!

The Java Programming Forums are a community of Java programmers from all around the World. Our members have a wide range of skills and they all have one thing in common: A passion to learn and code Java. We invite beginner Java programmers right through to Java professionals to post here and share your knowledge. Become a part of the community, help others, expand your knowledge of Java and enjoy talking with like minded people. Registration is quick and best of all free. We look forward to meeting you.

Need proper Java Lingo

Hi All,
I am new to the forum and in no way a Java programmer. I need help describing an application workflow to a colleage who does my company's java programmimg, but:
a) I do not think i am using the correct terms to describe to him what i would like.
b) Ontop of not knowing the correct terms, i then have to translate it into french.
But i basically need help with a) and i can then manage with b).
My colleague creates java programs for my company. One of these programs is distributed to many client machines. The problem is that the program does not function correctly when the end user has certain versions of Java installed on their machines.
I know what i propose is possible, as i used to work with a software that did exactly what i need.
I would like the program to be installed on the client machines bundled with it's own JRE (or JVM not quite sure what term to use). When this application is run after installation it should use this specific JRE only.
When the application is closed, this JRE is closed with it. This way it does not matter what version of Java the client has installed locally.
Our program should be the only program allowed to use this JRE.
If another java program is run while our application is running, it should use the version of Java installed on the machine and not the version that came bundled with our application.
Basically the bundled JRE instance should be reserved for our program and at the same time, not conflict (or be used by) with any other Java programs on the machine, as these will use whatever version of Java has been installed on the client computer before our installation.

Can someone please provide me with the Java terminology necessary to convey my idea to my colleague? Is there a name for what i am trying to do?
I have tried searching online, but it's tough when you dont know what search terms to use.

Re: Need proper Java Lingo

Java applications don't need to come bundled with the runtime (JRE and JVM are kind of used inter-changably, I tend to use JRE for the thing you install and JVM as the thing running the Java bytecode). As long as you don't use features found in newer versions of Java, all Java applications can be run on any version of JVM, and anything written for an older Java version should work on newer Java versions (note there might be a few exceptions, but these are "fringe" cases). For a list of these changes, see the release notes associated with different Java versions.

A general rule of thumb is that most java programs written for Java 1.4-1.6 (any revision) should work with any other version 1.4-1.6 (provided you don't try to use "new features" in the older runtimes). Support for JRE versions older than 1.6 has basically stopped, and I don't know of many people who use JRE versions older than 1.4 (for a while the most common version used was 1.4, though I think people have moved to 1.6).

I'm not sure on what the exact relationship between running java programs and JVM's is, but I believe that each JVM only handles 1 Java program/process, so when your program properly terminates the JVM process will also end. The only time this will matter is if you're developing multi-threading applications where certain threads may not terminate when you want to close your application. This can be avoided by either setting these other threads to be daemon threads (or some other mechanism which will tell other threads it's time to quit), or by calling System.exit() which will automatically terminate your Java program (I would recommend against the second method, designing your application to be forcibly terminated is almost never a good idea).

Re: Need proper Java Lingo

Hi All,
I am new to the forum and in no way a Java programmer. I need help describing an application workflow to a colleage who does my company's java programmimg, but:

Then you should be describing the requirements, not seeking buzzwords that would probably just confuse a competent programmer.

a) I do not think i am using the correct terms to describe to him what i would like.
b) Ontop of not knowing the correct terms, i then have to translate it into french.
But i basically need help with a) and i can then manage with b).

See above.

My colleague creates java programs for my company. One of these programs is distributed to many client machines. The problem is that the program does not function correctly when the end user has certain versions of Java installed on their machines.
I know what i propose is possible, as i used to work with a software that did exactly what i need.

That's all you need the programmer to know.

I would like the program to be installed on the client machines bundled with it's own JRE (or JVM not quite sure what term to use). When this application is run after installation it should use this specific JRE only.
When the application is closed, this JRE is closed with it. This way it does not matter what version of Java the client has installed locally.
Our program should be the only program allowed to use this JRE.
If another java program is run while our application is running, it should use the version of Java installed on the machine and not the version that came bundled with our application.
Basically the bundled JRE instance should be reserved for our program and at the same time, not conflict (or be used by) with any other Java programs on the machine, as these will use whatever version of Java has been installed on the client computer before our installation.

Half baked ideas at best, utter rubbish at worst. If your Java programmer isn't competent to take your requirements and provide an acceptable solution, either hire one that can or dismiss him, learn Java yourself and take over the software maintenance and deployment. Don't try to stuff your own ideas down the throat of the person you hired and pay to make such decisions and provide an appropriate solution to your problems.

There are other solutions you wouldn't be aware of, but your programmer should be.

Re: Need proper Java Lingo

Woah kitten, claws in!

Then you should be describing the requirements, not seeking buzzwords that would probably just confuse a competent programmer.

Alternatively applying the proper terminology could actually help the situation (or does that not compute?). Thats how good communication works. Unfortunately, he didnt understand when i requested initially... Not a judgment on him, just what i beleived to be something missing from the communication, hence my post.

Half baked ideas at best, utter rubbish at worst.

Or instead of coming off like an elitist douche (not saying that you are, just that you are coming off as such), you could have explained why the idea isn't good and maybe provided alternatives.

It's called interference.

It could also be called 'trying to find a solution to a problem, proactively.'

Did you try asking your programmer what the correct terms are, or do you just want to impress him with your (non) knowledge of Java terminology?

That elitist douche thing comes to mind again. If the idea was adequtely conveyed enough to ask what the proper terms were, that would really make my initial post redundant as i wouldn't have needed any help. The only people i need to impress are the clients who currenlty have an issue that needs resolving.

I know this won't be viewed as help, but I do hope it will be read and digested.

I agree, not much help at all... but i hope that the comments i've just made to you will equally be read and digested... So much for 'The friendly java community'. I feel sorry for the next non java programmer who comes to you for help.
In any event, no need to post a responce as i won't be checking back on this thread (though i doubt that will stop you from responding anyway... just an observation).

Re: Need proper Java Lingo

Folks, lets keep our cool.

Deceptiron, it seems you want to distribute the recommended (for your application) version of the JRE (Java Runtime Environment) with your application. I will add it is not a method I would recommend for distribution, but your developer should be able to accomplish this task by writing a simple script that launches your app with the supplied JRE.