Ubuntu 15.04 — Programming

This is a continuation of my series of notes on my install of Ubuntu 15.04 on my laptop. The full list of posts is on this page. Previously, in the last post, I installed some media programs. In this post, I’ll install the programming tools that I use.


I really like using the Gvim text editor for many editing tasks.  It’s not a full fledged IDE, but it’s great for single files. It’s a simple install from the Software Center — the vim-gnome package.

I have some plugins in my plugin directories and a customized configuration.  So, I restored my ~/.vim directory and /.vimrc.  I changed the directory for the backup files as well.  I have this in my .vimrc:

set bdir=~/.vimtmp
set directory=~/.vimtmp

So, I needed to create a ~/.vimtmp directory.


I use Git for tracking my source code changes for a few projects. I don’t work in it that much, so it is nice to have a GUI for certain things. The git-cola package has done that nicely in the past. Installing it also installs the actual git application.


I used WebUpd8’s repository to install Brackets:

sudo add-apt-repository ppa:webupd8team/brackets
sudo apt-get update
sudo apt-get install brackets

After installing the main application, I installed the “Brackets Git” plugin.

Node JS

I have been doing a bit of web programming, and Node JS seems to come up constantly. For example, everything wants to be installed with bower. I tried to use Bower PHP for a bit, but I quite fighting it. I’ll just install bower even if I don’t have it on my website. I shouldn’t be developing there anyway.

So, this installs: Node JS, the NPM installer, Bower, and Protractor

sudo apt-get install nodejs
sudo ln -s /usr/bin/nodejs /usr/bin/node
sudo apt-get install npm
sudo npm install bower -g
sudo npm install -g protractor

Note: For some reason, the package installs node as nodejs. I had to run the ln command to make a link to node. Bower wouldn’t work without that.

Here are the versions:

$ nodejs --version
$ bower --version
$ protractor --version
Version 2.2.0

I found that version 0.12 is released, and there are some nice instructions for installing that. I didn’t go down that path.


sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer
sudo apt-get install oracle-java8-installer

I installed the Oracle 8 installer because SQL Developer says it needs it.

Soap UI

Downloaded from the Soap UI website. Ran

sh SoapUI-x64-5.2.0.sh

Note: didn’t use sudo.

To test from the command-line:
/bin/sh “/home/skp/SmartBear/SoapUI-5.2.0/bin/SoapUI-5.2.0″

I got a core dump, so I tried this:

JAVA_TOOL_OPTIONS=""  /bin/sh "/home/skp/SmartBear/SoapUI-5.2.0/bin/SoapUI-5.2.0"

I updated my shortcut with MenuLibre to include that variable:
Installing Soap UI on Ubuntu 15.04

After that, it worked just fine.

JavaFX Scene Builder

Apparently, the Scene Builder from Oracle is gone. Instead Gluon has taken on maintaining a fork of the Scene Builder. They now offer a Linux Deb file on their Download Page.

Ubuntu Make: Eclipse & Android

Since the last time I installed Eclipse, Ubuntu has now come out with Ubuntu Make. So, I decided to give that a whirl.

I ran these commands

sudo apt-get install ubuntu-make
umake ide eclipse
umake android

The only question that it asked was the path where to install…
Choose installation path: /home/skp/tools/ide/eclipse
Choose installation path: /home/skp/tools/android/android-studio

I was a little disappointment. On the Eclipse Download page, it looks like the version is a little behind.
Eclipse Version

After opening Eclipse, I installed the plugins from Help > Install New Software. (using Luna – http://download.eclipse.org/releases/luna):

  • Collaboration > Command Line Interface for Java Implementation of Git
  • Collaboration > Eclipse Git Team Provider
  • Collaboration > Eclipse GitHub Integration with task focused interface
  • Collaboration > Java Implementation of Git
  • Collaboration > Java Implementation of Git – optional Java 7 libraries
  • Collaboration > Mylyn Context Connector: Eclipse IDE
  • Collaboration > Mylyn Context Connector: Java Development
  • Collaboration > Mylyn Context Connector: Plug-in Development
  • Collaboration > Mylyn Task List
  • Collaboration > Mylyn Task-Focused Interface
  • Collaboration > Mylyn Versions Connector: Git
  • General Purpose Tools > Swing Designer
  • General Purpose Tools > Swing Designer Documentation
  • Web, XML, Java EE and OSGi Enterprise Development > Eclipse Web Developer Tools
  • Web, XML, Java EE and OSGi Enterprise Development > Eclipse Java Web Developer Tools
  • Web, XML, Java EE and OSGi Enterprise Development > Eclipse XML Editors and Tools
  • Web, XML, Java EE and OSGi Enterprise Development > Javascript Development Tools
  • Web, XML, Java EE and OSGi Enterprise Development > PHP Development Tools

Finally, to make developing with Java FX easier, I installed the e(fx)clipse plugin for Eclipse.  Their install page is pretty good and detailed.

I just added two sites to Window > Preferences under Install/Update > Available Software:

  • http://download.eclipse.org/efxclipse/updates-released/2.1.0/site
  • http://download.eclipse.org/modeling/tmf/xtext/updates/composite/releases/
  • http://download.eclipse.org/efxclipse/updates-released/2.0.0/site
  • http://download.eclipse.org/efxclipse/updates-released/1.2.0/site

On the Install Dialog (Help > Install Software), I picked e(fx)clipse – install > e(fx)clipse – IDE.  Then, I just let it do it’s thing.

I can’t get the 2.0 or the 2.1 versions to install in Luna. I had to install the 1.2 version.

SQL Developer

I downloaded SQL Developer from Oracle’s SQL Developer website.  They are on version now.  I downloaded the “Other Platforms” version.  Then, I used the sqldeveloper-package program to install it.

sudo apt-get install sqldeveloper-package
make-sqldeveloper-package -b output \
sudo dpkg -i sqldeveloper*all.deb

Note: on my first attempt, I got this error:

dpkg-checkbuilddeps: Unmet build dependencies: debhelper (>= 7)

I fixed that with:

sudo apt-get install build-essential


Meld is an important tool for comparing text files. I use it mostly for comparing source code or programming-related projects, so it fell under this category. It’s an easy install from the Software Center.


SmartBear Community: Soapui not starting on Ubuntu 15.04
Stackoverflow: Where is the JavaFX scene builder gone?
Ubuntu Wiki: ubuntu-make
StackOverflow: Installing Bower on Ubuntu

Java Security Exception Site for WebEx

I’ve been having trouble opening WebEx because of a Java error message.  The “security settings have blocked the application”.  Here’s what I did to fix it…

Error message:

Your security settings have blocked an application signed with an expired or not-yet-valid certificate from running.


Posted in Java, WebEx. No Comments »

Ubuntu 13.10: Programming/Editors

This post is part of my install notes for my Ubuntu 13.10 setup.

These are the steps that I took to set up my programming environment.  Since I dabble in a myriad of different little projects, I need a myriad of different tools. (more…)

Ubuntu 13.04 Java

These are just some quick notes on the various Java programs that I install.  I’m sorry the notes are not very complete.  I’ll do better next time, but I thought these notes might still have some value.


My Server Configuration

These were the steps that I went through to configure my server after installing Ubuntu.  (just to help remember)

Installing SSH

My first requirement for a server is that I be able to get to it from my laptop.  SSH will allow me to both open remote terminal sessions and copy files from nautilus.

I simply installed this ssh metapackage from the Software Center.

My first attempt to connect brought me this message:

Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.

This was because I was reinstalling my server, and I had connected to the previous installation with my laptop.  The fix was easy (it was actually in the message):

ssh-keygen -R israel

To set it up to where I could connect without a password, I ran this command:

ssh-copy-id israel


I have an HP printer, so I chose to install the HPLIP Toolbox from the Software Center.

I could launch it through ssh with the command “hp-toolbox”.  Then, I chose the Setup Device option off the Device menu for my printer.

I selected USB:

Then, I selected the device:

Then, I entered the information about the printer:

This added, the printer.  Next, I made it the default printer:

To make the printer accessible over the network, I had to tweak the cups configuration.  I edited the /etc/cups/cupsd.conf.  I added a Listen line with the machine’s hostname.

I also turned “Browsing” on to make it easier to discover the printer.

To make the network name resolve correctly, I removed this line from /etc/hosts:

Finally, I restarted the cups service with the command:

sudo service cups restart

That gave me some access, but I still had issues.  Then, I found an easier way to do it.  I ran the the printer configuration:


On the printer dialog, there is a Server > Settings option.

There, I checked the sharing options to open things up for my private network.

Java Installation

I have a personal application that I use at home, and Java is a requirement for that.  I took the easy route and installed Java using Web Upd8’s method.  That just meant running these three commands:

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer

I confirmed that it installed with:

skp@israel:~$ java -version
java version "1.8.0-ea"
Java(TM) SE Runtime Environment (build 1.8.0-ea-b55)
Java HotSpot(TM) Client VM (build 24.0-b22, mixed mode)
skp@israel:~$ javac -version
javac 1.8.0-ea

Finally, I needed to add a mysql user.  I don’t need to install mysql because it’s embedded into my application, but I do need the user.  I used this command:

useradd -r mysql


Eclipse + JavaFX

I just ran across a couple of encouraging comments on the Net…

Here’s the first link:

Announcing JavaFX Scene Builder Public Beta

I found this in the comments:

 Is Scene Builder going to be integrated with Netbeans and Eclipse in future?

Ya, we designed it so that the SceneBuilder could be embedded in IDEA, Eclipse, and NetBeans. Obviously we’ll be doing the work on NetBeans and hopefully Thomas or somebody in the community will plug it into Eclipse

I also found this ticket.  (Maybe something to watch?)

efxclipse.org Trac:Ticket #120 (new enhancement)

That project has an installation page.  I’ll have to try that out.  For now, let me just write it down…

efxclipse Installation page

I did find a nice tutorial for using JavaFX with Eclipse (its a little old because it doesn’t list Linux):

Java FX for Eclipse

The Linux files are here:

Index of /general/javafx/eclipse/

And, while I am at it, I want to use Swing with JavaFX, and this tutorial looks like a great place to start:

JavaFX for Swing Developers

Posted in Java. No Comments »

Ubuntu 12:04: 32-bit Java Browser Environment

I used to call this installation my WebEx environment.  WebEx has a requirement for a 32-bit Java installation.  But, I found a few more needs for a 32-bit Java/browser such as a Juniper VPN.

Basically, I just did a variation on my older post about WebEx.

Here’s how I set it up:


Ubuntu 12.04: Installing Java from Runtime to Complete Development Environment

Installing Java was pretty straightforward and easy this go-around.  Since the runtime was so easy, we’ll let this post go through installing all the different pieces for a complete development environment: Eclipse, Android SDK, JavaFX SDK, etc.

So, here’s what I did…


WebEx in Fedora 15 (64 bit)

At one point, I thought WebEx was working natively in 64-bit Linux.  Either I am mistaken or it no longer works on 64-bit.  So, I decided to dust off my old 32-bit hack where you install 32-bit versions of Java and Firefox to make it all work.

Earlier, I had thought I would use my regular 64-bit installation, and I had posted my hooking Java up to Firefox for WebEx.  I was rightly corrected on troshlyak’s blog.  The 64-bit will work, but you can’t share your desktop or view another’s desktop.  So, I am back to the old way.  So, here’s what I did…

I downloaded the two programs:

I created a directory in ~/bin/webex to hold it all.  Under that, I put the Java SDK under the “jdk1.7.0_01″ directory.  Then, I put Firefox under “firefox”.

Environment Script:

I created this script in ~/bin/webex/env.sh:


export WEBEX_HOME=~/bin/webex
export JDK_HOME=$WEBEX_HOME/jdk1.7.0_01
export JAVA_HOME=$JDK_HOME/jre

To make sure you have it right, you can check it like this:

[skp@pecan bin]$ . ~/bin/webex/env.sh
[skp@pecan bin]$ which java
[skp@pecan bin]$ java -version
java version "1.7.0_01"
Java(TM) SE Runtime Environment (build 1.7.0_01-b08)
Java HotSpot(TM) Server VM (build 21.1-b02, mixed mode)

Now, you can link in the Java plugin like this:

ln -s $JAVA_HOME/lib/i386/libnpjp2.so $MOZ_PLUGIN_PATH/libnpjp2.so

Now, fire up firefox.  Note you may be asked to create the WebEx profile.  Make sure you create a profile with the same name you use on the command line so it won’t ask you again.

firefox --no-remote -P WebEx http://java.com/en/download/testjava.jsp

This should give you a successful Java applet working on the test page.  You also should see the architecture as i386.

Java Test Successful and shows i386

Finally, I created a ~/bin/webex.sh script to launch webex easily for me.


cd ~/bin/webex
. ./env.sh
firefox --no-remote -P WebEx

And you should be good to go.

Posted in Firefox, Java, WebEx. 9 Comments »

Java: getSystemJavaCompiler returns null!

After reinstalling my laptop with Ubuntu Natty, I had an issue with one of my custom built tools.  I have this tool that installs a Tomcat-based web application and server.  In the part that compiles the JSON library, I received a NullPointerException.

On further examination, I found that ToolProvider.getSystemJavaCompiler() was returning null for some reason.  I found the answer on IBM DeveloperWorks:

The ToolProvider.getSystemJavaCompiler()method can return null if tools.jar is not in the application’s classpath. The CharStringCompilerclass detects this possible configuration problem and throws an exception with a recommendation for fixing the problem. Note that Sun’s licensing allows tools.jar to be redistributed with the JRE.

What I found was that I was using a JRE instead of a JDK installation.  Of course, when I switch the Java Home to my JDK, I had some other error and the App wouldn’t even run.  So, I added the tools.jar from the JDK installation to the classpath and ran it with the JRE, and everything worked fine.

So, here is the code I use to compile (including the catch for the missing tools.jar):

		JavaCompiler jc = ToolProvider.getSystemJavaCompiler();
		// handle issue where tools.jar is not on the classpath
		if(jc == null) {
			log.logException(new InstallException("Could not access the system Java compiler -- check to make sure tools.jar is on the class path."));
		StandardJavaFileManager fm = jc.getStandardFileManager(null, null, null);
		File compilePath = new File(unzipPath, "org/json");
		Iterable<? extends JavaFileObject> files = fm.getJavaFileObjects(compilePath.listFiles());
		for(JavaFileObject f : files) {
			log.logInformation("Compiling - " + f.getName());
		CompilationTask task = jc.getTask(log.getStream(), fm, null, null, null, files);
		try {
		} catch (IOException e) {
			log.logException(new InstallException("Could not unzip " + zipPath, e));
		boolean result = task.call();
		log.logInformation("**Compile result = " + result);


IBM DeveloperWorks: Create dynamic applications with javax.tools

Posted in Java. No Comments »