What is Java? What purpose does it serve?
"Java is a programming language and computing platform first released by Sun Microsystems in 1995. There are lots of applications and websites that will not work unless you have Java installed, and more are created every day. Java is fast, secure, and reliable. From laptops to datacenters, game consoles to scientific supercomputers, cell phones to the Internet, Java is everywhere!" (Oracle page on Java)
JRE vs. JDK
- JRE: Just the Java Virtual Machine.
- JDK: The Java Software Development Kit - this includes command line tools for launching
.jarfiles, the JRE, compilers, and tools for creating Java-based programs.
Options for JRE and JDK
On Funtoo, there are several different java packages that you can emerge:
- virtual/jre - When you emerge this, it pulls in the java runtime environment for your current profile.
- virtual/jdk - When you emerge this, it pulls in the java development kit for your current profile.
- dev-java/icedtea - A Gentoo-made binary of the IcedTea JDK, this is the JDK pulled in when you emerge
virtual/jdkon the desktop profile.
- dev-java/oracle-jdk-bin - Oracle's version of the Java Development Kit. This package and
dev-java/oracle-jre-binboth require you to manually download the file and place it in
/usr/portage/distfilesdue to the fact that Oracle wants you to accept a license before downloading the package.
- dev-java/oracle-jre-bin - Similar to the above, this only includes the Java Runtime Environment.
To install java, run the following command:
# emerge -av virtual/jdk These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild N ] dev-java/java-config-wrapper-0.16 8 kB [ebuild N ] sys-apps/baselayout-java-0.1.0 71 kB [ebuild N ] dev-java/java-config-2.2.0-r1000:2 PYTHON_ABIS="2.7 3.3 -2.6 -3.1 -3.2 (-3.4)" 51 kB [ebuild N ] app-admin/eselect-java-0.1.0 71 kB [ebuild N ] dev-java/icedtea-bin-22.214.171.124:7 USE="X alsa cups -cjk -doc -examples -nsplugin -source" 47,781 kB [ebuild N ] virtual/jdk-1.7.0:1.7 0 kB [ebuild N ] virtual/jre-1.7.0:1.7 0 kB Would you like to merge these packages? [Yes/No] yes
Testing to see if it emerged
To check that java installed on your system, run the following command:
$ java -version
If you get something like this, you are ready to use java!:
java version "1.7.0_21"OpenJDK Runtime Environment (IcedTea 2.3.9) (Gentoo build 1.7.0_21-b02)OpenJDK 64-Bit Server VM (build 23.7-b01, mixed mode)
To be double sure that the java package you emerged is functional, you can run the following:
$ java-config --list-available-vms The following VMs are available for generation-2: *) IcedTea JDK 126.96.36.199 [icedtea-bin-7]
Using the java command
Overview of the command
The java command can be run like so:
- java [options] class [argument ...]
- java [options] -jar file.jar [argument ...]
Example command usage
$ javac -d bin -sourcepath src -cp lib/lib1.jar;lib/lib2.jar src/com/example/Application.java
$ java -cp bin;lib/lib1.jar;lib/lib2.jar com.example.Application
Running a jarfile:
$ java -jar Application.jar