Só funciona como root, caso contrário: Exception in thread "main" java.lang.NoClassDefFoundError:

Pessoal,

Estou utilizando o Linux Kurumin 6.1 e estou com dificuldades para rodar minha aplicação java.
Fiz um exemplo simples e consegui compilar normalmente com o “javac”, mas na hora de rodar com o comando “java MeuPrograma”, eu recebo a seguinte mensagem: “Exception in thread “main” java.lang.NoClassDefFoundError: MeuPrograma”.

Fiz várias pesquisas e cheguei a conclusão de que deveria alterar o arquivo: “/etc/profile”, no final do arquivo, inclui as seguintes linhas:

JAVA_ROOT=/java
JAVA_HOME=$JAVA_ROOT/jdk1.6.0
JRE_HOME=$JAVA_HOME/jre
CLASSPATH=.:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export CLASSPATH
export PATH=$JAVA_HOME/bin:$PATH
export PATH=$JRE_HOME/bin:$PATH

Mesmo incluindo essas linhas, o java só roda minha aplicação se eu estiver logado como ROOT, caso contrário, se estiver logado como um usuário comum, eu consigo compilar, mas não executar!

Alguém por favor sabe resolver isto?

Muito Obrigado,

Não tenho certeza, mas acho que seria pq seu main tem de ser String e não int.

Mas não tenho certeza, se for assim. Mude e faça um teste.

O código que estou tentando rodar, é apenas um exemplo, um “Hello World”.

class MeuPrograma {
public static void main(String[] args) {
System.out.println(“Minha Primeira Aplicação Java!!!”);
}
}

Agora amigo, vc me pegou nessa. Pois creio eu que esta correto sua aplicação. Possa ser alguma dll, do seu sistema operacional que não esta deixando o seu programa rodar direito. Se bem que o Java é multiplataforma, é isso que estou achando esquisito.

Vc utiliza algum outro sistema operacional além do Linux?

O nome do arquivo é MeuPrograma?

Acho que os amigos do guj sabem a resposta.

Talvez alguém saiba melhor do que eu.

Tente alguns desses import´s aqui

java.awt.*

e seu codigo!!!

Vc tem que olha se o nome do arquivo é MeuPrograma

igual ao que esta no seu programa class MeuPrograma, senão for vai dar erro.

vamos supor que meu arquivo tenha o nome de Total,

meu codigo tem de ser iniciado com o nome class Total.

:arrow: Veja as permissões de leitura do arquivo MeuPrograma.class.
:arrow: Veja as permissões do diretorio onde está o arquivo MeuPrograma.class
:arrow: De que diretório você está executando o comando java?
:arrow: Coloque explicitamente o classpath ao executar o programa.
:arrow: Qual a shell default do usuário root e do seu usuário?

Pessoal,

Para ficar aqui registrado, meu problema era com relação as permissões de arquivo.
Apenas o root tinha permissão para executar o comando “java”.

Caso resolvido.
Obrigado a todos que tentaram me ajudar.

Aqui aconteceu a mesma coisa, mas o problema era outro: o diretório atual não estava no classpath. Foi só adicionar que funcionou:

set CLASSPATH=.;%CLASSPATH% (no Windows)