Java is a First Class Citizen on Ubuntu Hardy Linux

5 min 858 words
Peter Tillemans Profile picture

Tags: jvm

Lately I hear a lot of Java bashing from a very vocal part of the Linux community. I do a lot of Java, I use Linux on my main laptop and I like this just fine. I use daily freemind (Java mindmapper) and openoffice (which is Java enabled). I was doing this for the past years since Windows XP ate my C-drive for the N-th time (and now it did the same on my gaming rig at home, grrr... ).

I keep a 'Tools' directory in my home drive and place there the Java tools and libraries I get from the net. Creating a little bash script in ~/bin which calls the startup script from the java tools almost always does the right thing, so I was contented. Well, I need to do some LDAP hacking. Last times I did that in perl, python, ruby and Java so it was groovy's turn.

On a whim I type :

pti@pti-laptop:~/workspace/salesforce$ sudo apt-get install groovy

and to my big surprise I get :```

Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  antlr junit4 libasm2-java libbcel-java libbsf-java libclassworlds-java  libcommons-cli-java
libcommons-collections3-java libcommons-lang-java libcommons-logging-java liblog4j1.2-java
libmockobjects-java libmx4j-java  libregexp-java libservlet2.3-java libxpp3-java libxstream-java
Suggested packages:
  groovy-doc libbcel-java-doc jython rhino libclassworlds-java-doc
  libcommons-collections3-java-doc liblogkit-java libavalon-framework-java
  libgnumail-java
Recommended packages:
  liblog4j1.2-java-gcj
The following NEW packages will be installed:
  antlr groovy junit4 libasm2-java libbcel-java libbsf-java
  libclassworlds-java libcommons-cli-java libcommons-collections3-java
  libcommons-lang-java libcommons-logging-java liblog4j1.2-java
  libmockobjects-java libmx4j-java libregexp-java libservlet2.3-java
  libxpp3-java libxstream-java
0 upgraded, 18 newly installed, 0 to remove and 0 not upgraded.
Need to get 7025kB of archives.
After this operation, 14.7MB of additional disk space will be used.
Do you want to continue \[Y/n\]?

Ok, this was not what I expected... Of course I type 'Y' and let it rip. Now my curiosity take the upper hand and I try some more :```

pti@pti-laptop:~/workspace/salesforce$ sudo apt-get install maven
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Couldn't find package maven

Tough luck. But wait, there are 2 mavens, let's try :```

pti@pti-laptop:~/workspace/salesforce$ sudo apt-get install maven2
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  ant libcommons-codec-java libcommons-collections-java
  libcommons-httpclient-java libcommons-net-java libcommons-openpgp-java
  libdoxia-java libganymed-ssh2-java libjdom0-java libjsch-java libjtidy-java
  liblogkit-java liboro-java libplexus-classworlds-java
  libplexus-component-api-java libplexus-container-default-java
  libplexus-interactivity-api-java libplexus-utils-java
  libplexus-velocity-java libslide-webdavclient-java libwagon-java
  libwerken.xpath-java velocity
Suggested packages:
  ant-doc libcommons-httpclient-java-doc libcommons-openpgp-java-doc
  libdoxia-java-doc libjtidy-java-doc libgnumail-java
  libplexus-classworlds-java-doc libplexus-component-api-java-doc
  libplexus-container-default-java-doc libplexus-interactivity-api-java-doc
  libplexus-utils-java-doc libplexus-velocity-java-doc libwagon-java-doc
  velocity-doc
Recommended packages:
  ant-optional ant-gcj
The following NEW packages will be installed:
  ant libcommons-codec-java libcommons-collections-java
  libcommons-httpclient-java libcommons-net-java libcommons-openpgp-java
  libdoxia-java libganymed-ssh2-java libjdom0-java libjsch-java libjtidy-java
  liblogkit-java liboro-java libplexus-classworlds-java
  libplexus-component-api-java libplexus-container-default-java
  libplexus-interactivity-api-java libplexus-utils-java
  libplexus-velocity-java libslide-webdavclient-java libwagon-java 
  libwerken.xpath-java maven2 velocity
0 upgraded, 24 newly installed, 0 to remove and 0 not upgraded.
Need to get 6211kB of archives.
After this operation, 25.2MB of additional disk space will be used.
Do you want to continue \[Y/n\]? 

Hmmmmm....... This is better.... There is some refence to ant.. Yep, that too... Jedit, jython, jruby, scala (I did not do LDAP with scala yet...) follow in quick succession... Well, time to fire up synaptic and search for Java. A seemingly endless list of packages appears. App Servers :

  • glassfish
  • tomcat (actually I knew that from before)
  • jetty

Dev Tools:

  • Emma
  • Junit
  • Junit4
  • JMock
  • ...

A bunch of the commons libraries, ... Half a dozen of jdk's. Java bindings for all the windowing toolkits out there : Gtk, Qt-jambi, ... I also finally found the jdbc driver for postgresql which I was frantically looking for a couple of weeks ago and finally downloaded from the postgres site. There is an old eclipse version, but actually this is a tool which I prefer to live in my Tools directory for updating the plugins. The only thing I did not find was findbugs. Well there is probably a lot more missing, but my inspiration dried up. I could clear out half of my tools folders because they are replaced with ubuntu version. I am now even more contented than I was. I just love to type 'apt-get install ' when I want something, and now I found more of what I want.