Alguns problemas com compilação usando javac no DOS

4 respostas
T

Pessoal, estou tendo alguns problemas.

Estou fazendo um curso de JSP e Servlets e no curso n se usa nenhuma IDE, semplesmente Notepad, javac e Tomcat.

E estou tendo os seguintes problemas, se alguem puder me ajudar.

Essa é a estrutura do meu projeto:

[img]http://img372.imageshack.us/img372/7459/projetotn7.jpg[/img]

E essa é a estrutura do Tomcat:

[img]http://img385.imageshack.us/img385/6213/tomcatvj7.jpg[/img]

Em C:\Tomcat\webapps\Beer-v1\WEB-INF tenho o arquivo web.xml, com o codigo:
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
      xmlns: xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
      version="2.4">

   `<servlet>
	`<servlet-name>Ch3 Beer</servlet-name>
	`<servlet-class>com.example.web.BeerSelect</servlet-class>
    </servlet>

    <servlet-mapping>
	<servlet-name>Ch3 Beer</servlet-name>
	`<url-pattern>/SelectBeer.do</url-pattern>
    </servlet-mapping>

</web-app>

Dentro de F:\Meu projeto\BeerV1\src\com\example\web tem o BeerSelect.java com o codigo:

package com.example.web;

import com.example.model.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;

public class BeerSelect extends HttpServlet {

	public void doPost(HttpServletRequest request, 
			HttpServletResponse response)
			throws IOException, ServletException {


		response.setContentType("text/html");
		PrintWriter out = response.getWriter();
			   out.println("Beer Select Advise<br>");
		String c = request.getParameter("color");
			BeerExpert be = new BeerExpert();
			List result = be.getBrands(c);
			Iterator it = result.iterator();
			while(it.hasNext()) {
				out.print("<br>try: " + it.next());
			} 	
	}
}

E dentro de F:\Meu projeto\BeerV1\src\com\example\model tem o BeerExpert.java com o codigo:

package com.example.model;

import java.util.*;

public class BeerExpert {

	public List getBrands(String color){

		List brands = new ArrayList();

		if(color.equals("amber")) {
			
			brands.add("Jack Amber");
			brands.add("Red Moose");
			
		}else {
			
			brands.add("Jail Pale");
			brands.add("Gout Stout");
			
		}
		 return brands;
	}	
}

Esse, qdo. eu compilo da essa msg:

F:\Meu projeto\BeerV1>javac -d classes src\com\example\model\BeerExpert.java Note: src\com\example\model\BeerExpert.java uses unchecked or unsafe operations. Note: Recompile with -Xlint:unchecked for details.

No que eu recompilo com o -Xlint e aparece isso:

F:\Meu projeto\BeerV1>javac -Xlint -d classes src\com\example\model\BeerExpert.java src\com\example\model\BeerExpert.java:13: warning: [unchecked] unchecked call to add(E) as a member of the raw type java.util.List brands.add("Jack Amber"); ^ src\com\example\model\BeerExpert.java:14: warning: [unchecked] unchecked call to add(E) as a member of the raw type java.util.List brands.add("Red Moose"); ^ src\com\example\model\BeerExpert.java:18: warning: [unchecked] unchecked call to add(E) as a member of the raw type java.util.List brands.add("Jail Pale"); ^ src\com\example\model\BeerExpert.java:19: warning: [unchecked] unchecked call to add(E) as a member of the raw type java.util.List brands.add("Gout Stout"); ^ 4 warnings

Sera que isso pode estar causando o problema?

E dentro do F:\Meu projeto\BeerV1\classes\com\example\model e do F:\Meu projeto\BeerV1\classes\com\example\web tenho o BeerExpert.class e BeerSelect.class, respectivamente.

Qdo. vou compilar no DOS, com o comando
javac -classpath c:/Tomcat/common/lib/servlet-api.jar -d classes src/com/example/web/BeerSelect.java
Da esses 3 erros:

src/com/example/web/BeerSelect.java:3: package com.example.model does not exist import com.example.model.*; ^ src/com/example/web/BeerSelect.java:20: cannot find symbol symbol : class BeerExpert location: class com.example.web.BeerSelect BeerExpert be = new BeerExpert(); ^ src/com/example/web/BeerSelect.java:20: cannot find symbol symbol : class BeerExpert location: class com.example.web.BeerSelect BeerExpert be = new BeerExpert();

Eu sei que ficou BEM grande, e se alguem tiver paciencia, e puder me dar uma ajuda, eu agradeço muito.

Valeu pessoal!

4 Respostas

R

Nessa última parte vc deve colocar o nome do pacote.
Você já deve estar localizado no diretório “src”, aí então faz assim:

javac -classpath c:/Tomcat/common/lib/servlet-api.jar -d classes com.example.web.BeerSelect.java

Assim compila.
Na primeira parte são apenas “warnings”. Você deve tá usando Java 5 mas não usou Generics quando declarou o objeto List.
No caso seria assim: List<String> minhaLista;

T

Rômulo, muito obrigado pela ajuda.

Qdo. tento compilar como vc sugeriu eu recebo esse erro:

F:\Meu projeto\BeerV1>javac -classpath c:/Tomcat/common/lib/servlet-api.jar -d classes com.example.web.BeerSelect.java
error: cannot read: com.example.web.BeerSelect.java
1 error

To perdendo a paciencia com esse trem.

C

Olá tours,

Tente o seguinte:

javac -classpath c&#58;/Tomcat/common/lib/servlet-api.jar;classes -d classes src/com/example/web/BeerSelect.java

Assim você diz pra o compilador procurar também no diretório classes as classes que ele precisa pra compilação (CLASSPATH).

Até mais,

T

CD1, cara, vc salvou meu FDS.

Muito obrigado mesmo, estava em 3 forums diferentes, um americano do escritor do livro que eu to estudando, e ninguem descobria o problema.

Valeu D+.

Como uma bobeira dessas consegue ser tão chata?

Abraços!!

Criado 2 de dezembro de 2006
Ultima resposta 3 de dez. de 2006
Respostas 4
Participantes 3