====== Java and the JVM on Accelerators ======
This page is a guide to creating and deploying applications on your Accelerator developed in the Java programming language, and developed in other languages that run on top of the Java Virtual Machine (JVM).
**Java Overview**
If you're new to Java, the JVM, or want a general introduction to developing and deploying Java applications, start off by reading the **[[all-accelerators:kb:java|Java Overview]]** in the [[all-accelerators:kb:start|All Accelerators Knowledge Base]].
===== Version =====
An up-to-date version of Java is available "out-of-the-box" with your Accelerator.
==== Finding the Java Version ====
admin$ java -version
java version "1.6.0_01"
Java(TM) SE Runtime Environment (build 1.6.0_01-b06)
Java HotSpot(TM) Server VM (build 1.6.0_01-b06, mixed mode)
If you see the following error:
Error occurred during initialization of VM
Could not reserve enough space for object heap
try:
admin$ java -Xms16m -Xmx64m -version
For more help on command-line switches, type:
java -h
===== Location =====
Java and the JDK can be found in ''/usr/bin''. This is a read-only location, and not user-land software cannot/should not be installed here (see [[accelerators:kb:tour]]).
admin$ which javac
javac is /usr/bin/javac
Standard tools should be available to you from ''/usr/bin'':
* java
* javac
* jar
* javadoc
* jdb
* javap
* javah
* extcheck
* apt
* idlj
* policytool
===== Warning on Java memory usage in Accelerators =====
Java automatically sets a heap size when it starts. The default calculation can give undesirable results in Joyent Accelerators (e.g. consuming half the memory in a container for a simple application).
See [[http://discuss.joyent.com/viewtopic.php?id=15918|this thread]] for further discussion.
To avoid problems, specify heap size parameters when you launch Java:
# java -Xms16m -Xmx64m MyJavaApp
===== Installing / Upgrading Java =====
If you need a version of the JDK that is different to the version contained in ''/usr/bin'', you may be able to install an alternate version within ''/opt''. //Please contribute if you are able to make this work.//
===== Installing Java Software =====
* [[tomcat|Tomcat]]