Para quem já tentou de tudo para instalar o J2SDK e não conseguiu, aí vai um passo-a-passo de como instalar o J2SDK, abordando configuração das variáveis de ambiente (CLASS_PATH e PATH) e exemplos de "Olá mundo" via prompt e usando Swing.
O J2SDK é o pacote para quem quer desenvolver Java. Se você quer apenas
usar Java, você precisa apenas de uma JVM (java virtual machine).
O j2SDK da Sun não é o único pacote para desenvolver em Java, nem a JVM
da Sun é a única JVM que existe. Mas como eu só sei usar estas, vai estas
mesmo. Não considero essa instalação simples, por isso vou tentar escrever
de forma detalhada.
A instalação que descrevo não é a mais simples, mas é dedicada para aqueles
que já tentaram apt-get e rpm e não conseguiram instalar o
J2SDK ainda.
Na ocasião da escrita deste artigo, já existia o J2SDK1.5, mas ainda como
beta. Então vou adotar o j2sdk1.4.2_03. Certamente o J2SDK1.5 é diferente.
[2] Comentário enviado por kalashinikov em 24/03/2004 - 00:34h
Interessante, gostei do artigo.
Uma sugestão, e a abordagem da programação Java no Linux, usando o NetBeans, exemplificando um prgrama com interface... chekbuton, radiobutton, etc...
[3] Comentário enviado por jose_maria em 24/03/2004 - 19:29h
kalashinikov,
a programação em java com NetBean é interessante. Porém eu achei a ferramenta um pouco lenta (na verdade eu achei bem lenta). Mas por outro lado é uma ferramente muito muito poderosa. Para quem não conhece o NetBeans é algo tipo o Delphi ou Kylix, talvez seja ainda mais poderosa.
Mas eu acho a swing uma alternativa viável para a programação para visual em linux. Exitem excelentes bibliotecas para desenvolvimento visual em linux, mas eu as considero bem difíceis e há pouquissimo matérial em português.
Mas o fato de JAVA ser byte-code torna tudo muito mais interessante porque o mesmo binário serve tanto para windows e para GNU/linux (ou qualquer outro SO que tenha um Máquina Virtual Java).
[5] Comentário enviado por aeliton em 28/03/2004 - 16:31h
Olá gente, eu segui todos os passos recomendados pelo josé maria, mas com a verssão 1.5 beta e funcionou perfeitamente!
seu artigo está ótimo parabéns!
Não tenho certeza se precisa desses export, você tem que testar. Dando certo ou errado posta aqui o resultado por favor, pode ser que outras pessoas estejam tendo o mesmo problema.
O javac fica dentro da pasta bin do /usr/java/j2sdk1.4.2_03, olha se ele está lá (muito provavelmente vai estar).
Valeu cara!
[12] Comentário enviado por torque em 22/05/2004 - 17:43h
Ótimo, estudo progamação em Microsoft Windows e procuro migrar todo o conhecimento para sistemas GNU/Linux, e artigos como estes são uma mão na roda nesse esforço.
[14] Comentário enviado por jose_maria em 27/05/2004 - 20:12h
Algumas Correções:
* Você esta instalando tudo em /usr porque nessa pasta todos os usuários terão acesso ao java. Se você instala-lo em uma pasta de um usuário, só ele
terá acesso ao java.
* O Editor de textos Joe não vem mais com o Kurumin. Mas no Kurumin você pode usar um outro editor de modo texto, chamando Joe (no Kurumin) ele irá chamar um outro editor.
* No Java 1.5, depois de executar o bin ele cria somente a pasta j2sdk1.5.0
a jre fica dentro da j2sdk1.5.0.
* Sobre a dúvida dos imports, aqui deu certo com os imports, então vai com imports mesmo.
[16] Comentário enviado por jose_maria em 02/06/2004 - 15:55h
Não consegui instalar o JSDK1.5.0 no Fedora Core 1, alguem conseguiu?
O /etc/profile dele é diferente do das outras distros e a receita de bolo não deu certo.
[18] Comentário enviado por jose_maria em 09/06/2004 - 13:54h
rpavoni,
Os binários são para Linux, então é provável que funcione em qualquer distribuição.
A melhor forma de saber é testando, qualquer problema põe um comentário aqui que a gente te ajuda.
Valeu.
[20] Comentário enviado por kram3r em 14/06/2004 - 11:46h
eu instalei a jdk e o tomcat ...
fui compilar algumas coisas e deu uns erros
tipo ... umas classes
$ javac ProcFormID.java
#############################
import javax.servlet.http.*
package javax.servlet.http does not exist
import javax.servlet.*
package javax.servlet does not exist
#############################
tipo... quando eu compilo um outro sistema q fiz em Swing ele funciona legal se bem q naum utiliza nenhum desses dois...
podem me dar uma luz??? ficaria muito agradecido!!!
[21] Comentário enviado por jose_maria em 14/06/2004 - 13:33h
Cara, o que eu posso dizer é que essa clase não vem com a JSDK.
Eu também não encontrei a documentação dela na API do JSDK 1.5.0beta2. Talvez você tenha que pegar ela por ai, ou então ela está com o Tomcat. Ai você teria que por o caminho dela, ou ela no diretório do teu programa.
O que realmente você quer fazer?
Você quer fazer aplicações server side, tipo com JSP?
[22] Comentário enviado por removido em 14/06/2004 - 18:28h
ae kram3r....
eh o seguinte: pelo q eu me lembro tem um arquivo chamado servlet.jar em umas das pastas "lib" do tomcat.
Caso vc esteja usando esse ".java" como um javabean para uma aplicação em jsp, vc tem q criar um contexto dentro do tomcat. O arquivo ".class" tem q ser colocado dentro de "/tomcat/webapps/seu_contexto/WEB-INF/classes" (se não me engano eh isso).
uma solução pro seu problema seria você compilar o seu ".java" usando o classpath do tomcat!
javac -classpath "/tomcat/shared/lib/servlet.jar" seu_aruivo.java - acho q eh assim!
testa ae e depois posta pra galera....
[25] Comentário enviado por ThalesBoss em 11/07/2004 - 03:01h
Silveira PARABENS, o artigo tah exelente cara!
sobre os exports, kuando voce declara no /etc/profile
EXPORT $JAVA_HOME
EXPORT $CLASSPATH
...
voce torna visivel estas variaveis ao ambiente unix, tornando as variaveis globais.. voce pode comprovar isso digitando no no console :
$ e teclando [tab] duas vezes, e aparecerá a lista de variaveis globais...
algo como:
dentre outras , se voce visualizar o path classpath e java home tah blz...
isso vai ser bastante util kaundo voce for instalar outros programas ki sejam integrados com java como o tomcat, ant, junit e outros, pq eles procuram pela variavel $JAVA_HOME...
[29] Comentário enviado por jose_maria em 28/07/2004 - 12:41h
Um outro jeito de configurar as variavéis do sistema:
Crie links dentro das pasta /usr/bin/
Exemplo:
$sudo ln -sf /usr/local/jdk1.5.0/bin/java /usr/bin/java
$sudo ln -sf /usr/local/jdk1.5.0/bin/javac /usr/bin/javac
Eu vi isso dentro dum script de instalação java do kurumin. Eu testei com o java 5 beta 2 e funcionou legal.
[31] Comentário enviado por ricardopf em 06/08/2004 - 14:14h
Segui exatamente o procedimento sugerido pelo jose_maria porém não obtive exito ao executar um arquivo . class no kurumin. Sempre aparece a seguinte mensagem :
Exception in thread "main" java.lang.NoClassDefFoundError: Welcome1/class
Sendo que o arquivo q eu quero executar é o Welcom1.class
Alguem tem ideia do que pode ser isso?
Obrigado
[32] Comentário enviado por jose_maria em 07/08/2004 - 10:52h
Como exatamento você fez isso? Para executar o arquivo Welcome1.class você deve ir no bash e digitar:
$java Welcome1
Você não deve colocar o .class na hora de chamar a classe. Se deu errado assim mesmo me manda um email (clica no meu nome que tem a opção).
[33] Comentário enviado por blood-eyes em 06/09/2004 - 19:54h
Tipo eu tentei fazer com Swing e dai fiz tudo o que era para fazer mas dai na hora que eu digitei
$ java HelloWorldSwing
Deu isso:
Exception in thread "main" java.lang.InternalError: Can't connect to X11 window server using ':0.0' as the value of the DISPLAY variable.
at sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)
at sun.awt.X11GraphicsEnvironment.<clinit>(X11GraphicsEnvironment.java:134)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:141)
at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:62)
at java.awt.Window.init(Window.java:231)
at java.awt.Window.<init>(Window.java:275)
at java.awt.Frame.<init>(Frame.java:401)
at javax.swing.JFrame.<init>(JFrame.java:198)
at HelloWorldSwing.main(HelloWorldSwing.java:5)
[34] Comentário enviado por jose_maria em 07/09/2004 - 12:22h
Cara, esse é um problema típico de quando você está no prompt de um usuário mas no X de outro. Aí a aplicação vai procurar o X daquele usuário e não vai conseguir. Eu testei aqui, me logar aqui com um usuário no KDE e abrir um Konsole de outro e tive o mesmo problema.
Eu acho que você estava no terminal como root (porque você estava fazendo a instalação) esqueçeu de se deslogar e tentou executar a aplicação.
Tente novamente agora, logando-se com o usuário final.
Valeu.
[35] Comentário enviado por lefigo em 05/10/2004 - 14:41h
Olá colega! Tenho o Red Hat 9 e meu arquivo etc/profile é igual ao do meu colega "almy" que postou seu comentário em 15/04/2004, ou seja, é o seguinte:
[38] Comentário enviado por maxbrg em 06/11/2004 - 10:43h
Meu caro amigo José_maria, gostei muito do seu artigo mas tive muita dificuldade de entender algumas coisas, eu não sou nenhum expert em programacao ,alias eu não sei nadinha estou começando agora, para ser mais exato hoje! Mas foi com sua ajuda que eu consegui iniciar no JAVA.
Mas o meu /etc/profile fico muito diferente . eu gostaria de saber se estou certo ou se vou ter problemas no futuro....
Eu so acrescentei no final do "PATH :/usr/j2sdk1.4.2_06/bin"
meu /etc/profile
" # /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
PATH="/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games:/usr/j2sdk1.4.2_06/bin"
[39] Comentário enviado por jose_maria em 06/11/2004 - 16:12h
Cara, muito obrigado. Me deixa muito feliz ouvir que eu ajudei alguem com meu trabalho. Boa sorte no teu caminho da programação, a comunidade está aqui sempre que você precisar e quando você estiver um expert ;) volte para deixar conhecimentos.
Cara, dependendo da distribuição o classpath fica bem diferente. Mas se você conseguiu compilar sem problemas os exemplos que eu coloquei, eu acho que você não vai ter problemas não. Talvez na hora de rodar um aplicativo grande como o NetBeans ou Eclipse, pois ele vai procurar a variável de sistema Java_home.
Agora no seu profile deveria ter alguma coisa como classpath para indicar onde estão as classes. Você conseguiu compilar e rodar os programas do artigo?
[40] Comentário enviado por maxbrg em 06/11/2004 - 16:48h
Sim esta tudo compilando sem problemas, realmente eu não sei por quanto tempo
Mas eu sou muito calmo vou esperar para ver o que vai dar
vou fazer outros testes e te mantenho informado de tudo
espero poder contar sempre com sua ajuda...
Muito obrigado...
PS:
Eu tenho duas distribuição instaladas o RedHat 9 e um tal de Xandros que eu gosto muito.
Ainda não testei no RedHat...
[47] Comentário enviado por HelloWorld em 31/03/2005 - 08:42h
Olá para todos.
Estou tentando seguir esse tutorial para instalação no Slack 10.1 mas a variável JAVA_HOME não assume o valor atribuido no arquivo /etc/profile. Já tentei digitar no terminal os comandos de configuração (export, etc...) e nada funcionou. Alguém tem alguma idéia do que está acontecendo?
Grato
arnaldoruas@terra.com.br
[48] Comentário enviado por efantini em 07/04/2005 - 21:57h
Valeu José Maria! Como muitos já falaram sou 'mais um' iniciante em java graças ao seu artigo.
Estou usando o Conectiva 9 e tive problemas para setar as variáveis de PATH.
Ao instalar o CL9, ele já cria uma pasta /usr/lib/java2 e coloca lá o básico do Java.
Descobri, utilizando o comando
$ e teclando [tab] duas vezes, e aparecerá a lista de variaveis globais...
do comntário do ThalesBoss de 11/07/04 que o CL9 via este path pelos arquivos:
/etc/profile.d/java2.csh e /etc/profile.d/java2.sh
então alterei os arquivos, ficando o
/etc/profile.d/java2.csh assim:
if ( ! $?JAVA_HOME ) then
setenv JAVA_HOME /opt/j2sdk1.4.2_07
endif
if ( $?PATH ) then
setenv PATH /opt/j2sdk1.4.2_07/bin:/opt/j2sdk1.4.2_07/bin:$PATH
else
setenv PATH /opt/j2sdk1.4.2_07/bin:/opt/j2sdk1.4.2_07/bin
endif
[50] Comentário enviado por helsen em 24/04/2005 - 02:42h
Consegui configurar no Fedora Core 3 (depois de muito sacrificio) uzando links simbólicos.
mas o jeito que você falou não funcionou aqui Jose Maria (ver abaixo):
# ln -sf /usr/local/jdk1.5.0/bin/java /usr/bin/java
# ln -sf /usr/local/jdk1.5.0/bin/javac /usr/bin/javac
funcionou assim:
# ln -sf /usr/java/j2sdk1.4.2_x/bin/javac javac
# ln -sf /usr/java/j2sdk1.4.2_x/bin/java java
lembrando que o uso de comando para soft link :
$ ln [opções] <endereço+nome_arquivo_para_executar> <endereço+nome_do_link>
porém agora quando eu tento fazer o exercicios utilizando o Swing tenho problemas com várias classes das
libs libawt.so: libXP.so.6 java.lang UnsatisfiedLinkError - cannot open shared object file
[51] Comentário enviado por mnoveli em 24/04/2005 - 14:00h
Ola meu amigo ..vc poderia falar sobre netbeans for linux instalei aqui no meu suse 9.3 professional e adorei mas pretendo usar ele com seus exemplos aqui eu compilei e deu pau erro por nao ter a classe main ...tudo bem até ai bem gostaria que vc desse enforco mais ao netbeans exemplos feito neles abraços e viva o linux...
[55] Comentário enviado por marion em 12/06/2005 - 23:38h
São artigos como esse que fazem as pessoas se sentirem capazes de seguirem adiante...
Muito bem escrito e eficaz
Resolveu o meu problema perfeitamente
Parabéns!!!
[57] Comentário enviado por drsc em 27/01/2006 - 13:06h
Depois de muito mecher em PATCHS achei uma forma mais facil de resolver o problema.
Uma alternativa que funciona melhor (fiz em 1 minuto) eh colocar um link em /usr/bin
para o java e javac.
Para isso escreva: ln -s /usr/java/j2sdk1.4.2_09/bin/java /usr/bin/java.
ln -s /usr/java/j2sdk1.4.2_09/bin/java /usr/bin/javac.
Se voce usar csh-based shell, devera digitar: rehash
[60] Comentário enviado por aviana em 08/03/2006 - 20:13h
A configuração do meu arquivo /etc/profile ficou assim
# Set the default system $PATH:
export JAVA_HOME=/usr/java/j2sdk1.4.2_11
PATH="/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/usr/games"
PATH="/usr/java/j2sdk1.4.2_11/bin:$PATH"
[61] Comentário enviado por sede_pt em 15/04/2006 - 15:56h
este artigo merece nota 10..... eu estou a estudar em Portugal e para mim Java so no windows .... mas graças a este artigo agora ja começo a usar o linux...
[64] Comentário enviado por dill_tche em 16/05/2006 - 16:02h
muito bom, penei na parte de setar as variaveis, achei duas linhas com PATH no inicio, coloquei no primeiro Ctrl+k, s e enter ai para sai não sei se fiz certo, mas dei um control+c, fui apresentado ao Joe hoje, hehehe, deu tudo certo muito massa, valeu...
[66] Comentário enviado por gilbertogo em 16/11/2006 - 18:43h
Olá, desde já parabenizo pelo artigo, muito bom, mas infelizmente não sei se é burrice minha ou algo errado, no meu /etc/profile não tem variável PATH,´lá dentro do arquivo tem um monte de if e else, mas não tem nenhum com o nome PATH, será q pode me ajudar....
há, uso o ubuntu 6.06.
desde já obrigado.
[68] Comentário enviado por fabio.nda em 03/05/2008 - 21:51h
Pessoal sou iniciaste no Linux,
Depois de utilizar o Ubuntu estou no Fedora pois consegui colocar o Modem 3G da claro para funcionar.
Bem amigo estou tentando montar o ambiente Java no meu Fedora 8, fiz o primeiro passo e consegui verificar a instalação do Java com sucesso.
Só que agora não consigo ou melhor não sei como configura a Variável de Ambiente.
Não sei em qual lugar do arquivo "Profile" eu incluo as linhas indicada no artigo.
Peso desculpas pela minha ignorancia mais pesso ajuda para tentar fazer esse procedimento
Meu arquivo Profile:
" # /etc/profile
# System wide environment and startup programs, for login setup
# Functions and aliases go in /etc/bashrc
pathmunge () {
if ! echo $PATH | /bin/egrep -q "(^|:)$1($|:)" ; then
if [ "$2" = "after" ] ; then
PATH=$PATH:$1
else
PATH=$1:$PATH
fi
fi
}
# ksh workaround
if [ -z "$EUID" -a -x /usr/bin/id ]; then
EUID=`id -u`
UID=`id -ru`
fi
# Path manipulation
if [ "$EUID" = "0" ]; then
pathmunge /sbin
pathmunge /usr/sbin
pathmunge /usr/local/sbin
fi
# No core files by default
ulimit -S -c 0 > /dev/null 2>&1
if [ -x /usr/bin/id ]; then
USER="`id -un`"
LOGNAME=$USER
MAIL="/var/spool/mail/$USER"
fi
HOSTNAME=`/bin/hostname`
HISTSIZE=1000
if [ -z "$INPUTRC" -a ! -f "$HOME/.inputrc" ]; then
INPUTRC=/etc/inputrc
fi
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC
for i in /etc/profile.d/*.sh ; do
if [ -r "$i" ]; then
. $i
fi
done