[RESOLVIDO]Problema com package

6 respostas
Bills

Sempre quando eu tento usar um package, mesmo que seja com um diretório só, dá erro. Por que?

package MinhaPasta; // Isso não compila D: public class Test{ public static void main(String args[]){} }

Isso não compila com package, mas sem package funciona certinho.

Esse é o erro:

<blockquote>java.lang.NoClassDefFoundError: Test (wrong name: MinhaPasta/Test)

at java.lang.ClassLoader.defineClass1(Native Method)

at java.lang.ClassLoader.defineClass(ClassLoader.java:791)

at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)

at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)

at java.net.URLClassLoader.access$100(URLClassLoader.java:71)

at java.net.URLClassLoader$1.run(URLClassLoader.java:361)

at java.net.URLClassLoader$1.run(URLClassLoader.java:355)

at java.security.AccessController.doPrivileged(Native Method)

at java.net.URLClassLoader.findClass(URLClassLoader.java:354)

at java.lang.ClassLoader.loadClass(ClassLoader.java:423)

at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308 )

at java.lang.ClassLoader.loadClass(ClassLoader.java:356)

at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:472)

Exception in thread “main”</blockquote>

6 Respostas

nel

Oi!

Está executando onde isso?
Não esquece, se estiver eum prompt do windows por exemplo, vais ter de informar o package ao executar o javac.

Bills

Uso o npp para compilar e ele usa o prompt mesmo. Como informo o package?

Uso o seguinte código para compilar:

cd $(CURRENT_DIRECTORY)
javac $(FILE_NAME)
java $(NAME_PART)

nel

Nunca usei o npp e não sou o melhor para usar o javac no prompt, pois estou acostumado com a IDE.
Mas enfim, supondo que esteja assim:

C:\Projeto\br\com\guj\User.java.

Você acessa o diretório C:\Projeto no prompt e executa:

javac -cp . br.com.guj.User.java

Creio que isso resolva.
Tem a opção -d no javac, é bem interessante ao que vejo.

Aqui tem um ótimo tutorial, vale a pena ler: http://download.oracle.com/javase/1.3/docs/tooldocs/win32/javac.html

Abraços.

Bills

Tentei desse jeito que voce falou, mas nem deu nada.

Tentei também indicar a pasta, ai deu essa saida:

Current directory: C:\Users\LUIZ\Desktop\MinhaPasta
javac Test.java
Process started >>>
<<< Process finished.
java MinhaPasta\Test
Process started >>>
Erro: NÒo foi possÝvel localizar nem carregar a classe principal MinhaPasta\Test

‘-’

nel

Oi,

assim funciona:

Supondo C:\Teste\br\com\guj\Teste.java faça:

acesse no prompt o diretório C:\Teste e agora execute o comando:

javac -cp . br\com\guj\Teste.java

java -cp . br.com.guj.Teste
Bills

Ae finalmente consegui, muito obrigado pela ajuda.

Usei as seguintes linhas:

javac -cp . Test.java java MinhaPasta.Test

Também achei muito interessante o comando:

javac -d . Test.java

Valeu novamente.

Criado 16 de setembro de 2011
Ultima resposta 16 de set. de 2011
Respostas 6
Participantes 2