I am new to java and hope this is the correct forum to ask my question. We are planning to produce controlling systems using java such as a security system.
What kind of products supports java? Could you please tell me some of them?
Check out these Java controllers (some have awesome capability for their size). If you need large volume and want to build your own board, several of the companies have reference designs available (or the board is based on that reference design) like Maxim (TINI), Ajile (JNIB) and Imsys (SNAP).
- TINI (http://www.maxim-ic.com/products/microcontrollers/tini/)
- JSTICK (http://www.tstik.com/)
- JSTICK (http://www.jstik.com/)
- JSTAMP (http://www.jstamp.com/)
- SaJe (http://www.saje.systronix.com/)
- SNAP (http://www.imsys.se/products/modules/snapmodule.htm)
- EJC (http://www.embedded-web.com/products/index.html)
- Muvium (http://muvium.com/)
- Javelin Stamp (http://www.parallax.com/javelin/index.asp)
- JNIB development kit (http://www.jempower.com/ajile/content/view/47/52/)
- OOPic (http://www.oopic.com/)
Also, there are a zillion little embedded Linux boards that you can easily slap one of the many JVMs on (Sun J2SE, CLDC or CDC, or one of the open source JVMs like Kaffe, Wonka, Waba or JamVM) and have a very capable, full featured Java controller (oh yeah, with source to the JVM so you can modify it to suit your needs). I have done this (with the open source JVMs) with the boards from Technologic Systems (http://www.embeddedarm.com/) and Gumstix (http://www.gumstix.com/) and have been very happy with the results.
I've considered going the Linux board route. I'm an Enterprise Java developer so I'm comfortable in most Unix/Linux variants but I've never worked with one in an embedded capacity. Would you recommend this approach rather than using a Java board? I kind of like the thought of a J2SE JVM on an embedded platform but I'm sure it'd take quite a performance hit. Thanks for your thoughts!
I have used and like (and this is all personal opinion) the Technologic Systems embedded boards. Specifically the TS-5300 (x86 processor) and the TS-7200 (ARM processor). I have installed the SUN Java 1.2 runtime on these (or the backdown port) and that works well with some fooling around. I find that JamVM is a better choice for these boards since I can compile that for the specific board and OS Im using (less fooling around with libraries and unknown dependencies). Some of the newer boards are better (faster, quicker boot times, just newer, better support for wireless networking and USB). I think that the GUMSTIX boards are also very nice (same thing, compile and install JamVM) and very affordable. There are a lot of embedded Linux boards available ranging from a few hundred dollars to several thousand. Some don't have a lot of available memory (RAM) and don't support removable media like SD/MMC cards or compact flash. I think that limits your choices in the JVM you can use.
Why use an embedded Linux platform?
- want/need to run other things as well (Apache for example).
- you NEED native methods.
- J2SE packages.
- able to modify the JVM.
- you're a Linux fanatic, so its a requirement.
Why NOT an embedded Linux platform?
- no need to know Linux (and you need to know embedded Linux well) .
- generally lower cost.
- usually physically smaller (except for the GUMSTIX)
- you're up, running and writing code much faster.
- a lot less fooling around (easier to maintain and keep running)
- you've got Java, who needs Linux (or even an OS for that matter)?
Interesting. I will probably stick to the Java boards for now. I've actually built several Linux distros from scratch (with help from LFS) and I'm an avid Mac user so I'm very comfortable at a command line and I know my ins and outs quite well. I'm not sure I want to really jump in with the embedded stuff though. I'll research what you've suggested though. Thanks again.