Classpath , Path , Java_home , J2ee Home?

Pra que serve cada uma delas e exatamente o que tenho que colocar como conteudo delas?

1)Classpath
2)Path
3)Java_home
4)J2ee_home

Desde já grato
Saulo Henry Pottier.

CLASSPATH = deixe em branco.
PATH = onde você vai encontrar seus programas executáveis. Exemplo:
PATH=C:\WINDOWS\SYSTEM32;C:\JDK1.5.0\BIN
JAVA_HOME = alguns programas Java precisam dessa variável para saber onde está instalado o Java. Exemplo:
JAVA_HOME=C:\JDK1.5.0
J2EE_HOME = o J2EE Reference Implementation precisa dessa variável para saber onde está instalado.

Mas deixar a classpath em branco ? pra que realmente preciso dela e tipo meus arquivos executaveis na path tenho que colocar meu .jar referenciado nela ou não ?

Tipo to querendo saber tambem como instalar um aplicativo no cliente tenho que colocar algo em alguma delas no cliente?

Para mexer o mínimo possível no cliente normalmente escrevo uma batch que tenha essas definições. Deixe o CLASSPATH em branco e escreva explicitamente o classpath na chamada do seu programa Java, tal como:

SETLOCAL
SET JAVA_HOME=C:\JDK1.5.0
%JAVA_HOME%\bin\java -cp dir1;dir2;dir3;MeuJar.jar;OutroJar.jar MinhaClasse arg1 arg2
ENDLOCAL

O cliente vai ter que ter todo o sdk instalado na maquina não né ? so o jre certo?

Tudo é questão de testar. É interessante ver se seu programa funciona numa outra máquina, que só tem o JRE. Pode ser, por exemplo, que você use alguma coisa como um charset que depende de charsets.jar, um arquivo que normalmente não vem com a instalação padrão do JRE porque tem 5MB. Se der algum pepino, você tem de reescrever esse pedaço que depende de algo que não está no padrão.

Pras classes java normais não precisarei mexer nessas variaveis precisarei ? so se criar um pacote meu certo?

Em JAVA_HOME você coloca o diretório de instalação da JDK. No PATH você coloca %JAVA_HOME%\bin (no Windows) ou $JAVA_HOME/bin (no Linux). Se você mudar o diretório de instalação da JDK é só alterar o valor em JAVA_HOME.
No CLASSPATH você configura o local onde o Java vai achar as classes que a sua aplicação importa.
No cliente você precisa só da JRE (os contâineres web precisam da JDK). Normalmente se cria um .bat ou .sh que chama sua aplicação, ou um arquivo .jar executável, que contém um arquivo MANIFEST.MF onde estão as configurações (a melhor opção).

Martins fico muito agradecido pela explicação realmente clareou as funções exatas delas e aproveitando te pergunto …

quando eu importo tipo javax.swing tenho que levar o pacote jar dela para o cliente ou eu arquivo class não precisara dela apos ter sido compilado?

Não, tudo que começa com java ou javax faz parte da distribuição básica do Java. Se o cliente tem a JRE não é preciso instalar nada.
O .class precisa de tudo que você importar, mas esses pacotes estão presentes no computador que tem o Java instalado.

Mais uma vez muito obrigado martins.

Senhores, Posso pedir a gentileza de um exemplo de configuração dessas variaveis direcionado para o seguinte script que preciso compilar:

package oracle.apps.icx.por.apps;

import java.sql.;
import java.util.Enumeration;
import java.util.Vector;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.http.
;
import oracle.apps.icx.common.;
import oracle.apps.icx.por.domain.
;
import oracle.jdbc.driver.OracleCallableStatement;
import oracle.jdbc.driver.OraclePreparedStatement

Estas variaveis de configuração estao no regedit ?

Grato,
Mucio

JAVA_HOME - vc coloca direcionado pra o caminho do diretorio base do sdk do java SE.
J2EE_HOME - vc coloca direcionado pra o caminho do diretorio base do sdk do java EE.
CLASSPATH - apontado pra onde esta seu arquivo .jar do oracle caso ele nao esteja no diretorio lib do JRE do diretorio base do SE.

Elas nao estao no regedit elas esta no meu computador sistemas na parte de variaveis de sistema.

Valeu, Saulo. Vou tentar. Obrigado.

estou editando o autoexec.bat win98, configurando a variavel de ambiente JAVA_HOME apontando para o jdk1.6.0, ao executa-lo aparece a msg “sem espaço de ambiente”.

o que é esta mensagem? e o que devo fazer?

Talvez sua variável de ambiente esteja grande demais. Qual o tamanho dela?
Aproveite e coloque o conteudo do arquivo bat aqui também.

Ola pessoal, aproveitando a idéia, me digam uma coisa:
Eu tenho uma classe Pessoa como posso fazer para por exemplo buscar outras classes que estão dentro do arquivo galera.jar que está no mesmo diretório da classe pessoa?

Estou com essa dúvida, ou seja, fazer uma classe buscar outra que esta dentro de um arquivo .jar.

Ps: O contrário eu eu sei fazer… se quiserem eu posto aqui.

Brigaduuuuuuuuuu

EU
arbonan@gmail.com

Se não me engano você deve definir na variável classpath o caminho . (ponto) para que o compilador e a JVM busquem bibliotecas no diretório atual. Você pode também incluir o caminho do jar completo nessa variável (ex: C:\lib\meu.jar) ou ainda incluir no classpath do projeto usando o menu “propriedades do projeto” no netbeans ou eclipse. Acho que é isso…

Como você faz “o contrário” ?