Eu procurei antes aqui no forum e não encontrei o uma resposta para o que eu quero.
Eis a situação.
Eu tenho um OS Ubuntu, nele eu tenho instalado o jkd. Tudo funciona, mas não como deveria.
Eu tenho as minha variaveis de ambiente no arquivo
/etc/profile
Dentro dele está assim…
JAVA_HOME=/opt/java/jdk1.6.0_20
export JAVA_HOME
CATALINA_HOME=/opt/java/apache-tomcat-6.0.26/
export CATALINA_HOME
PATH=$PATH:$JAVA_HOME/bin
export PATH
CLASSPATH=$JAVA_HOME/lib
export CLASSPATH
JRE_HOME=$JAVA_HOME/jre
export JRE_HOME
MANPATH=$JAVA_HOME/man
export MANPATH
No terminal…
bruno@casa-desktop:~$ echo $JAVA_HOME
/opt/java/jdk1.6.0_20
bruno@casa-desktop:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/java/jdk1.6.0_20/bin
bruno@casa-desktop:~$ echo $CLASSPATH
/opt/java/jdk1.6.0_20/lib
bruno@casa-desktop:~$
Ao compilar …
javac -d ../class Pai.java
funciona perfeita
mas quando eu vou executar
java Pai
dá um erro
Exception in thread "main" java.lang.NoClassDefFoundError: Pai
Caused by: java.lang.ClassNotFoundException: Pai
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:319)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:264)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:332)
Could not find the main class: Pai. Program will exit.
para corrigir eu tenho de passar a flag -classpath
java -classpath . Pai
agora executa perfeitamente.
se eu mudar as configurações para o arquivo /etc/bash.bashrc muda o erro:
java Pai
funciona perfeitamente
e
javac -d ../class Pai.java
Não funciona e apresento o erro
/bin/sh: javac: not found
Minha duvida é :
Pq quando eu uso o arquivo /etc/profile eu sou obrigado a usar a flag -classpath . Pq eu não posso simplismente “java Pai”?