Estou tentando compilar o seguinte código:
package com.example.web;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
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 Selection Advice<br>");
String c = request.getParameter("color");
out.println("<br>Got beer color " + c);
}
}
Em troca o java 17 me diz que não tem os pacotes que eu importo com exceção do pacote java.io .
Sou novo estudando internet e não conheço a versão 17 do java. Onde está o meu erro?
Abaixo vou mostrar o print de uma tela, resultado da compilação:
Obrigado pela atenção e ajuda,
Ronaldo
Mas pq vc ta tentando compilar manualmente? Pra compilar manualmente, vc precisa montar o MANIFEST do jar, e fazer tudo na mão. Não faz sentido.
1 curtida
Qual versão do Tomcat vc está usando? A partir da versão 10 o Tomcat suporta o Servlet 5.0 e o pacote javax.servlet
foi substituido por jakarta.servlet
.
Vc tem que ver se está usando as versões corretas para que tudo funcione corretamente.
1 curtida
O livro que estou usando recomenda usar um editor simples e fazer na mão para praticar.
A versão é apache-tomcat-9.0.60.
E a versão do servlet-api?
1 curtida
É a mesma versão do tomcat.
Não pode ser, a última versão da API é a 6.0.
Me mostra o link de onde vc baixou o servlet-api.jar.
Para o Tomcat 9, vc deveria baixar a versão 4.0.
1 curtida
Não tenho mais o link mas veio junto com o tomcat então agredito que sejam compativeis.
Entendi, vc tem razão, baixei aqui para fazer uns testes, se eu descobrir ao novo, volto aqui.
1 curtida
Ronaldo, eu estou instalando o Windows aqui, então ainda não consigo testar, mas olhando seu comando com mais atencão, acredito que o problema é que vc usou “:” para separar os caminhos do classpath.
No Windows a gente não usa “:” para separar os caminhos, a gente usa “;”.
Experimenta fazer esta mundanca para ver se vc consegue compilar.
1 curtida
Você pode escrever a linha para mim pois eu usei vários dois pontos.
O separador de caminhos do Windows é ";"
então você vai ter que substituir cada ":"
por ";"
.
Simples assim.
javac -classpath c:/apache-tomcat/lib/servlet-api.jar;classes;. src/com/example/web/BeerSelect.java
Consegui instalar aqui e usei este comando.
1 curtida
Sim, então não digo c: e sim c;
Engraçadinho, se você não sabe diferenciar um nome de unidade de um separador de caminho , então recomendo que aprenda a utilizar o seu sistema operacional antes de aprender a programar.
1 curtida
Veja como está no comando que coloquei no arquivo compila2.bat:
cd c:\Program Files\Eclipse Adoptium\jdk-11.0.14.101-hotspot\bin
javac -version
javac -classpath c:/apache-tomcat-9.0.60/bin/servlet-api.jar;classes:. -d classes c:/users/usuario/webjava/MyProjects/beerV1/src/com/example/web/BeerSelect.java
Está correto?
anyblueangel3:
Está correto?
Não, entre o diretório "classes"
e o diretório "."
, ainda tem um ":"
perdido.
1 curtida
Corrigi mas continua sem reconhecer o arquivo jar. Dá o mesmo erro do primeiro print que eu mandei. Não sei o que fazer.
Qual jar?
Provavelmente você está executando as linhas de comando a partir do diretório errado.
Na sua postagem você está executando dentro do diretório bin do Java, não é lá que estão os fontes do seu projeto.
Você tem que adicionar a pasta src
do seu projeto ao compilar seus fontes.
1 curtida