Variáveis de ambiente CLASSPATH ,JAVAHOME

Saudações

Estou tendo alguns problemas de compilação de um servlet que usa um método static de outra classe, ambas no mesmo pacote.
Pensei que, talvez esteja ocorrendo algum problema com as variáveis de ambiente (Uso windows XP SP2)

CLASSPATH: C:\Arquivos de programas\Java\jre1.5.0_06\lib\ext\QTJava.zip;C:\Arquivos de programas\tomcat_5_5\common\lib\servlet-api.jar

Já o JAVA_HOME eu não criei, pois os comandos do compilador java funcionam todos, javac, java -version, etc…
Qdo instalei o JSDK 5 (Tiger) apareceu uma variável de ambiente que não havia visto antes:
QTJAVA: C:\Arquivos de programas\Java\jre1.5.0_06\lib\ext\QTJava.zip

Os servlets mais simples compilaram e funcionaram normalmente no tomcat 515.17

Agradeço a colaboração de todos.

Daí,

Tás compilando tudo no braço, ou tás usando alguma IDE pra ajudar ?
Acho difícil ser problema de variável de ambiente, acredito que teu problema tá no código que tás usando pra chamar o método. Podes postar aqui ?

[]s

Ok, vamos lá
Não estou usando IDE, estava usando o Netbeans 5.5, mas optei por aprender na mão mesmo pra depois usar uma IDE, só pra saber melhor os conceitos, etc.

Este é o código da classe que contém o método estático headTitle:

package coreservlets;

import java.io.*;
import java.net.*;

import javax.servlet.*;
import javax.servlet.http.*;

public class ServletsUtilities{
    public static final String DOCTYPE = "<!DOCTYPE HTML PUBLIC \"-W3C//DTD HTML 4.0 " + "Transitional//EN\">";
    
    public static String headTitle(String title){
        return(DOCTYPE + "\n" + "<HTML>\n" + "<HEAD><TITLE>" + title + "</TITLE></HEAD>\n");
    }
}

Este é o servlet que usa a classe ServletsUtitilies:

[code]
package coreservlets;

import java.io.;
import java.net.
;

import javax.servlet.;
import javax.servlet.http.
;

public class ThreeParams extends HttpServlet {

protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
    
    response.setContentType("text/html");
    PrintWriter out = response.getWriter();
    String title = "Reading three params";
    out.println(ServletsUtilities.headTitle(title) +
            "<BODY>\n " + "<H1>" + title +"</H1>" +
            "<UL>\n" +
            "   <LI><STRONG>PARAM 1</STRONG>"
            + request.getParameter("param1") + "\n" +
            "   <LI><STRONG>PARAM 2</STRONG>"
            + request.getParameter("param2") + "\n" +
            "   <LI><STRONG>PARAM 3</STRONG>" + "\n"
            + request.getParameter("param3") + "\n" +
            "</UL>\n" +
            "</BODY></HTML>"                
            );
    
    
    //processRequest(request, response);
}

 protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
    doGet(request, response);
}


public String getServletInfo() {
    return "Short description";
}
// </editor-fold>

}[/code]

O erro, é :
[b]cannot find symbol
symbol: variable ServletsUtilities
Location: classe coreservlets.ThreeParams
out.println(ServletsUtilities.headTitle(title)
^

A classe ServletsUtilities é compilada normalmente…Outro detalhe estranho é, se eu colocar a ServletsUtilities dentro de um pacote, como anteriormente (myutilities.ServletsUtilities…), o compitalador diz que não exsite o pacote myutilities, mesmo ele sendo declarado na primeira linha do código…estranh isso

Aguardo
Atenciosamente
Eliselbert[/i]

Opa,

Não basta o package estar declarado, é preciso fazer isso fisicamente também. Ou seja, se tá num pacote coreservlets, precisas pegar e criar um diretório chamado coreservlets e jogar a classe lá dentro.

Já li esse livro do coreservlets, muito bom. Boa escolha :wink:

Se não tiveres o diretório criado, cria e tenta outra vez.

[]s

O livro é muito bom mesmo…
Mas então, a questão é, o diretório existe fisicamente…veja nas figuras o erro com a compilação dos servlets usando pacote, e sem o uso de pacote…muito estranho:

com pacote(ele diz que o pacote não existe, mas veja que está lá)
http://www.elipenha.info/java_img/java_01.jpg

sem pacote (ele nao reconhece a varíavel de um método estático)
http://www.elipenha.info/java_img/java_02.jpg

Agradeço

Assim, se a classe pertence a um pacote, ela tem que estar fisicamente dentro desse pacote, e de acordo com as figuras, não é o que tá acontecendo…

Move o arquivo ServletUtilities pra dentro da pasta myutilities :wink:

[]s

Eu tenho a classe tanto dentro como fora do pacote, só pra teste, mas por desencargo de consciência, eu criei duas classes simples, só imprimindo mensagem na tela, e deu o mesmo erro, vou instalar o jsdk 5 uptade 7, o meu é o update 6 e vou ver se o problema tá na JVM, sei lá

Reporto o resultado aki

Agradeço