Onde foi que eu errei???
[code]package transforma;
class Transforma{
Transforma(){
}
public static void main(String args[]){
System.out.println("Ola mundo");
}
}[/code]
java.lang.NoClassDefFoundError: Transforma
Onde foi que eu errei???
[code]package transforma;
class Transforma{
Transforma(){
}
public static void main(String args[]){
System.out.println("Ola mundo");
}
}[/code]
java.lang.NoClassDefFoundError: Transforma
Tenta colocar:
package transforma;
class Transforma{
public Transforma(){
}
public static void main(String args[]){
System.out.println("Ola mundo");
}
}
Seu problema deve ser o package:
[code]$ mkdir transforma
$ javac Transforma.java
$ mv Transforma.class transforma/
$ java -cp . Transforma
Exception in thread “main” java.lang.NoClassDefFoundError: Transforma
$ java -cp . transforma.Transforma
Ola mundo[/code]
perceba só: Transforma está no package transforma (vc informa isso na primeira linha). Logo quando vc tenta “executar” a classe a maquina virtual não encontra essa classe, vc tem que informar o package+classe. Entretanto vc precisa ter o .class dentro da mesma estrutura de diretorios que representa o package.
Se a sua classe estivesse no package
br.com.guitarman.teste;
tu terias que criar a estrutura de diretorios
br/com/guitarman/teste
e invocar a classe
br.com.guitarman.teste.Transforma
Perceba que, se vc for utilizar essa classe em outro arquivo, pode informar o “caminho completo” ou utilizar o import
import br.com.guitarman.teste.*;
Vc vai compreender estes conceitos em breve, se continuar a se dedicar bastante e ler a sessão de artigos e tutoriais do guj, principalmente os primeiros (sobre classpath principalmente).
[quote=Guitar_Men]Tenta colocar:
[code]
package transforma;
class Transforma{
public Transforma(){
}
public static void main(String args[]){
System.out.println("Ola mundo");
}
}
[/code][/quote]
Desculpe, mas no que mudou?
[quote=peczenyj]Seu problema deve ser o package:
[code]$ mkdir transforma
$ javac Transforma.java
$ mv Transforma.class transforma/
$ java -cp . Transforma
Exception in thread “main” java.lang.NoClassDefFoundError: Transforma
$ java -cp . transforma.Transforma
Ola mundo[/code]
perceba só: Transforma está no package transforma (vc informa isso na primeira linha). Logo quando vc tenta “executar” a classe a maquina virtual não encontra essa classe, vc tem que informar o package+classe. Entretanto vc precisa ter o .class dentro da mesma estrutura de diretorios que representa o package.
Se a sua classe estivesse no package
br.com.guitarman.teste;
tu terias que criar a estrutura de diretorios
br/com/guitarman/teste
e invocar a classe
br.com.guitarman.teste.Transforma
Perceba que, se vc for utilizar essa classe em outro arquivo, pode informar o “caminho completo” ou utilizar o import
import br.com.guitarman.teste.*;
Vc vai compreender estes conceitos em breve, se continuar a se dedicar bastante e ler a sessão de artigos e tutoriais do guj, principalmente os primeiros (sobre classpath principalmente).[/quote]
Ele dá o mesmo erro mesmo removendo a declaração do pacote… coloquei isso tentando solucionar.
Eu to tentando fazer isso no JEdit, pq no NetBeans tá funcionando corretamente. Simplesmente não me conformo!
o construtor ser publico, default ou nem ser declarado não interfere, é problema de classpath.
até pq o main é estático (pertence à classe) e o mesmo não é instanciado em parte alguma. é claro que não custa tentar 
[quote=lfernandesfotos][quote=Guitar_Men]Tenta colocar:
[code]
package transforma;
class Transforma{
public Transforma(){
}
public static void main(String args[]){
System.out.println("Ola mundo");
}
}
[/code][/quote]
Desculpe, mas no que mudou?[/quote]
O modificador de acesso do construtor, foi apenas uma sugestão 
Dá uma olhada nessa implementação. Não inclui declaração de pacotes, então deveria poder ser executado no mesmo diretório onde ele se encontra, não? Mesmo assim ele dá o mesmo erro. Por que funciona no NetBeans e aqui não?
[code]
import java.lang.Integer;
public class Transforma {
public static void main(String args[]){
String palavra = "MACKENZIE", letra;
String resultados[] = new String[palavra.length()];
int vetor[][] = new int[palavra.length() + 1][9];
for(int i = 0; i < palavra.length(); i++){
letra = palavra.substring(i, i+1);
resultados[i] = binario("00000000" + Integer.toBinaryString((int) letra.charAt(0)));
}
}
public static String binario(String s){
return s.substring(s.length()-9,s.length()-1);
}
}[/code]
Exception in thread “main” java.lang.NoClassDefFoundError: Transforma
Caused by: java.lang.ClassNotFoundException: Transforma
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
configure seu ambiente de desenvolvimento como em anexo!!
Variáves de ambiente já configuradas. O problema persiste!
ta usando qual ide?
A IDE que estou usando e, onde funciona o programa, é o NetBeans.
Mas o problema só ocorre quando tento fazer uma simples classe “Hello World” em Notepad e executá-la no Prompt do DOS. Ele compila a classe mas não consegue executá-la, retornando o erro descrito anteriormente. Verifiquei as configurações do ambiente, mas está tudo ok, pelo que me consta:
JAVA_HOME = C:\Arquivos de programas\Java
Path = %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Arquivos de programas\Java\jdk1.6.0_04\bin;C:\mysql\bin
Se tiver mais alguma dica, agradeço.
Resolvi deletando a variável CLASSPATH.
Agradeço a todos!