Archive for January, 2011

Ant unable to find tools.jar

Saturday, January 29th, 2011

When attempting to run ant I get the following message: “Unable to locate tools.jar. Expected to find it in C:Program Files (x86)Javajre6libtools.jar”

This had to do with my JAVA_HOME not pointing to a Java JDK.

So if you download a JDK and update your JAVA_HOME environment variable to point to that directory, ant should run happily.

In BASH:
export JAVA_HOME=/path/to/jdk

IN DOS:
set JAVA_HOME=c:PATHtojdk

Tags: ,

Sample Ant file

Friday, January 28th, 2011

Every once in awhile I go back and try to figure out how to create a basic ant build.xml file. So I am just placing a sample build.xml here.

The directory structure should be something like
./build.xml
./src/HelloWorld.java

The targets will create the build directory and compile the source and run a test execution of the class.

<project name="HelloWorld" basedir="." default="main">
<target name="clean">
<delete dir="build"/>
</target>

<target name="compile">
<mkdir dir="build/classes"/>
<javac srcdir="src" destdir="build/classes"/>
</target>

<target name="jar" depends="compile">
<mkdir dir="build/jar"/>
<jar destfile="build/jar/HelloWorld.jar" basedir="build/classes">
<manifest>
<attribute name="Main-Class" value="HelloWorld"/>
</manifest>
</jar>
</target>

<target name="run" depends="jar">
<java jar="build/jar/HelloWorld.jar" fork="true" />
</target>

<target name="main" depends="clean,run"/>

</project>

Tags:

Java Exception java.lang.NoClassDefFoundError and how to resolve it

Wednesday, January 26th, 2011

I had recently reinstalled my system and was trying to run a simple class that consisted
of a “Hello World” program in Java. I received the following:

Compile:

$> javac LottoMain.java

Run:

$> java LottoMain

Exception in thread “main” java.lang.NoClassDefFoundError: LottoMain
Caused by: java.lang.ClassNotFoundException: LottoMain
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:319)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:264)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:332)
Could not find the main class: LottoMain. Program will exit.

The compile line completed without errrors and the LottoMain.class file was there, but
what I didn’t know was that I no longer had the current directory “.” in my CLASSPATH variable.

After adding “.” to my CLASSPATH variable the run command gave me what I was expecting.

Run:

$> java LottoMain

Hello Eric!

Updating the CLASSPATH variable in Bash:
in my home directory/.bashrc file

export CLASSPATH=$CLASSPATH:.

Tags: ,

Java: Great link to Swing Examples

Friday, January 21st, 2011

Starting on my road to creating a Java based GUI I stumbled upon the following link within the “Creating a GUI with JFC/Swing” Train in the Java Tutorials from Oracle.

Using Swing Components: Examples

It has code examples and can really get you started on the road to a Java GUI interface.

Tags: , ,

Java: Creating a Window

Thursday, January 20th, 2011

This is the First of some basic articles about creating a GUI in Java. The following code is the basis of the following series of articles. I am using the Java Swing window toolkit.

import java.awt.*;
import java.swing.*;

class FirstWindow 
{

  public static void main(String[] args)
  {
      //Create Window object and set title bar text
      JFrame frame = new frame("First Window");

      // Set the Default operation when you close the window
      // This exits the program on closing the window
      // The default behavior is to HIDE_ON_CLOSE
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

      // Now we need to Display the window
      // The null argument will place the element in the center of the screen.
      frame.setLocationRelativeTo(null);
      frame.pack();
      frame.setVisible(true);
   }
}

This is enough to display a simple window, but it will probably not have any useful size associated with it and it does not do anything.

The next step will be to add some useful widgets and eventually functionality to make the window useful.

Helpful info:
Java: Great link to Swing Examples

Tags: ,

Android: SD card unmounting when I connect to the computer

Wednesday, January 12th, 2011

So I was charging my Droid X and noticed that while I was connected I could not use my SD card anymore. And the camera will not take any picutures if there is no SD card present.

So I pulled down the task bar and selected “USB connection” .

Once I selected the “Charge Only” option, it was smooth sailing and my SD card was available to my phone again.

This is also the place to turn on “USB Mass storage” when you are ready to copy off those pictures.

Tags:

Droid X first glance

Wednesday, January 5th, 2011

So I finally moved away from the iPhone(as it turned horrible when I used the “supported” update to iOs 4 on my 3g) and have gotten myself a Droid X. This phone has been awesome(and I have only had it for 2 days).

The Google driving directions app that comes with the phone has been awesome and the unified mailbox is pretty cool. The Android market has been nice and I have perused quite a few apps so far and have been very excited as to what is out there. I was a little afraid as I had heard some less then great things but am very happy to be misinformed.

I am still on the hunt for a good messaging app that supports popup messages (like the iPhone had) and also looking for a new expense receipt tracking app.

I will be following up with some useful information about using the Android OS as I have access to two of them in the house.

I am excited to have this new toy and looking forward to the things I can do with it.

Tags: , , ,

Testing perl modules

Wednesday, January 5th, 2011

A quick way to test a perl module with a new method is to use a command like the following:

$ perl -MeTechTips::IssueTracking::ClearQuest -we '$tr =  eTechtips::IssueTracking::ClearQuest->new();'

This will test the new and ensure that you have the correct syntax if you do not have an easy test environment for your code, for example as I do not have a ClearQuest instance to test with.