CLASSPATH, Java Buld Path (eclipse) e WEB-INF \ LIB: o que usar, quando e por que?

Recentemente, mudei para o J2EE do .NET e estou confuso sobre onde colocar os arquivos JAR. Eu sei que o CLASSPATH, WEB-INF e o Java Web Path do Eclipse são todos os locais onde os JARs podem ser armazenados, mas estou confuso sobre qual pasta usar, quando e por que.

Primeiro, temos o CLASSPATH. Eu costumo definir isso entrando em "Variáveis de ambiente" em "Meu computador". Eu sei que este é o local padrão onde o compilador Java procura por arquivos JAR. Quando adiciono uma pasta ou um JAR à minha variável de ambiente CLASSPATH, por que ela é ignorada pelo Eclipse, pelo compilador Java e pelo servidor da web?

Além disso, eu sei que WEB-INF \ LIB é um local onde você pode colocar arquivos JAR que seu aplicativo da web vai usar. No entanto, coloquei JARs no WEB-INF \ LIB apenas para que eles sejam ignorados. Em que situações devo colocar os JARs na pasta WEB-INF \ LIB? Como obtenho o Eclipse ou o servidor da Web para notá-los?

Até agora, a única coisa que funciona para mim é realmente alterar o Java Build Path para um projeto Eclipse. Selecionarei os JARs necessários e pressionarei "Adicionar JARs externos". Na maioria das vezes, quando faço isso, o Eclipse reconhece meus JARs e lê as classes nele. No entanto, eu encontrei um monte de erros aleatórios estranhos ao fazer isso (principalmente em relação às dependências, eu acho). Por alguma razão, sinto que esse não é o caminho certo para fazer as coisas e que estou perdendo alguma informação vital. Quando devo adicionar manualmente JARs externos no Eclipse e quando devo fazer as coisas de maneira diferente? Como é que o Java Build Path do Eclipse parece não saber sobre as pastas na minha variável de ambiente CLASSPATH?

Realmente, gostaria de entender melhor o CLASSPATH, o Java Build Path do Eclipse e a pasta WEB-INF / LIB - os propósitos a que servem, os relacionamentos entre eles e onde devo colocar meus JARs em vários situações. Agradeço qualquer conselho que você possa me dar ou qualquer artigo que você possa recomendar.

Obrigado.

questionAnswers(7)

yourAnswerToTheQuestion