Dúvida usando o Velocity

Olá!
Estou trabalhando em uma ferramenta que gere código automático. Ouvi falar do Velocity e decidi usá-lo, pois a minha ferramenta terá como funcionalidade basica usar dados do DB para gerar um template HTML.
Baixei o Velocity Tools, instalei aqui e peguei uns exemplos de código em alguns tutoriais para testar. O que acontece é que eu consigo compilar normalmente pelo prompt de comando, mas quando eu mando executar tenho o seguinte erro:

C:\Users\Kamilla\Desktop\Teste>javac VelocityListProcess.java
Note: VelocityListProcess.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

C:\Users\Kamilla\Desktop\Teste>java VelocityListProcess
Exception in thread "main" java.lang.NoClassDefFoundError: VelocityListProcess
Caused by: java.lang.ClassNotFoundException: VelocityListProcess
        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
Could not find the main class: VelocityListProcess.  Program will exit.

Tentando executar de outra forma:


C:\Users\Kamilla\Desktop\Teste>java -cp . VelocityListProcess
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/velocity/c
ontext/Context
Caused by: java.lang.ClassNotFoundException: org.apache.velocity.context.Context

        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
Could not find the main class: VelocityListProcess.  Program will exit.

Compilando com o -Xlint:

1 error

C:\Users\Kamilla\Desktop\Teste>javac VelocityListProcess.java -Xlint:unchecked
VelocityListProcess.java:22: warning: [unchecked] unchecked call to add(E) as a
member of the raw type java.util.ArrayList
                list.add("Item 1");
                        ^
VelocityListProcess.java:23: warning: [unchecked] unchecked call to add(E) as a
member of the raw type java.util.ArrayList
                list.add("Item 2");
                        ^
VelocityListProcess.java:24: warning: [unchecked] unchecked call to add(E) as a
member of the raw type java.util.ArrayList
                list.add("Item 3");
                        ^
VelocityListProcess.java:25: warning: [unchecked] unchecked call to add(E) as a
member of the raw type java.util.ArrayList
                list.add("Item 4");
                        ^
VelocityListProcess.java:26: warning: [unchecked] unchecked call to add(E) as a
member of the raw type java.util.ArrayList
                list.add("Item 5");
                        ^
5 warnings

As configurações das variáveis de ambiente no Windows são as seguintes:

CLASSPATH: C:\Users\Kamilla\Desktop\ARPRO\Velocity\velocity-1.6.4\velocity-1.6.4\velocity-1.6.4-dep.jar
JAVA_HOME: C:\Program Files\Java\jdk1.6.0_14
Path: C:\Program Files\Java\jdk1.6.0_14\bin

E o código do tutorial:

Listagem dos itens de um ArrayList

Existem \$lista.size() itens na lista.

-------------------
#foreach (\$item in \$list)
	\$item
#end
-------------------
import java.io.StringWriter;
import java.util.ArrayList;
import org.apache.velocity.*;
import org.apache.velocity.app.*;

public class VelocityListProcess
{
	public static void main(String args[]) throws Exception
	{
		// inicializando o velocity
		VelocityEngine ve = new VelocityEngine();
		ve.init();

		// criando o contexto que liga o java ao template
		VelocityContext context = new VelocityContext();

		// escolhendo o template
		Template t = ve.getTemplate("template1.vm");
	
		// variavel que sera acessada no template:
		ArrayList list = new ArrayList();
		list.add("Item 1");
		list.add("Item 2");
		list.add("Item 3");
		list.add("Item 4");
		list.add("Item 5");

		// aqui! damos a variavel list para
		// o contexto!
		context.put("lista", list);	
		StringWriter writer = new StringWriter();

		// mistura o contexto com o template
		t.merge(context, writer);

		System.out.println(writer.toString());
	}
}
	

O que pode estar acontecendo? Não acredito que seja erro no código pois peguei de um tutorial aqui do GUJ…

Se puderem ajudar eu agradeço muito! Não achei muita coisa que indique como configurar o ambiente para usar o Velocity.

Compilando só um código simples tipo um Hello Word eu tenho isso:

C:\Users\Kamilla\Desktop\Teste>javac inicio.java -Xlint:unchecked

C:\Users\Kamilla\Desktop\Teste>java -cp . inicio
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/velocity/c
ontext/Context
Caused by: java.lang.ClassNotFoundException: org.apache.velocity.context.Context

        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
Could not find the main class: inicio.  Program will exit.

C:\Users\Kamilla\Desktop\Teste>java inicio
Exception in thread "main" java.lang.NoClassDefFoundError: inicio
Caused by: java.lang.ClassNotFoundException: inicio
        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
Could not find the main class: inicio.  Program will exit.

Código:

Classe java:

import java.io.StringWriter;
import org.apache.velocity.Template;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.VelocityEngine;

public class Inicio
{

	 public static void main ( String[] args )  throws Exception
         {
        
         
        /*
         *  inicializando a engine Velocity 
         */  

         VelocityEngine ve = new VelocityEngine();
         ve.init();

        /*
         *  pegando o arquivo template criado         
        */

        Template t = ve.getTemplate( "inicio.vm" );

        /*
         *  criando um contexto e inserindo os dados  
         */

	 VelocityContext context = new VelocityContext();
         context.put( "nome", "Fernando Martin " );  

         /*
          *  renderizando o template
          */

           StringWriter writer = new StringWriter();
           t.merge( context, writer );
       
         /*
          *  mostra o resultado   
          */
  
           System.out.println( writer.toString() ); 


	}

}

Arquivo .vm:

Produzido por $nome

Não acho solução pra isso… =/

Certo, consegui resolver o problema incluindo os arquivos .jar do Velocity no Java Build Path do Eclipse. Consegui compilar e executar um “Hello World” usando o Velocity. Mas o meu objetivo mesmo é usar o Texen para produzir aquivos HTML.

Tenho os seguintes arquivos:


<project name="HtmlGenerator" default="main" basedir=".">

  <taskdef name="texen" classname="org.apache.texen.ant.TexenTask"/>

  <!-- ============================================================= -->
  <!-- G E N E R A T E  H T M L  P A G E S                           -->
  <!-- ============================================================= -->
  <!-- This target will generate a set of HTML pages based on        -->
  <!-- the information in our control context.                       -->
  <!-- ============================================================= -->

  <target name="main">

    <echo message="+------------------------------------------+"/>
    <echo message="|                                          |"/>
    <echo message="| Generating HTML pages!                   |"/>
    <echo message="|                                          |"/>
    <echo message="+------------------------------------------+"/>

    <texen
      controlTemplate="Control.vm"
      outputDirectory="src/Templates"
      templatePath="."
      outputFile="generation.report"
    />

  </target>

</project>
#*

file: HtmlTemplate.vm

This is worker template. It is called by the
control template to produce useful output (or
not so useful in this case). :-)

*#

#set ($bgcolor = "#ffffff")

<html>
  <head>
    <title>
      Everything you wanted to know about $planet!
    </title>
  </head>
  <body bgcolor="$bgcolor">

  $planet is a great place to live!

  </body>
</html>
#*

file: Control.vm

This is the control template for our HTML
page generator!

*#

#set ($Planets = ["Earth", "Mars", "Venus"])

#foreach ($planet in $Planets)

    #set ($outputFile = $strings.concat([$planet, ".html"]))
    $generator.parse("HtmlTemplate.vm", $outputFile, "planet", $planet)

#end

E quando eu tento compilar tenho o seguinte erro:


Buildfile: D:\EclipseWorkspace\TestesVelocity\src\build.xml

BUILD FAILED
D:\EclipseWorkspace\TestesVelocity\src\build.xml:3: taskdef class org.apache.texen.ant.TexenTask cannot be found

Total time: 137 milliseconds

Na pasta que indiquei o Java Build Path do Texen eu tenho o arquivo TexenTask justamente onde o caminho indica, ele está nesta pasta:
C:\Users\Kamilla\Desktop\ARPRO\Velocity\texen\src\java\org\apache\texen\ant

Mas mesmo estando na pasta certa, dá o erro.
O que pode ser?
Alguma ajuda?