Compilando e executando um código que utiliza um arquivo ‘jar’ em seu classpath

 
 

Dado o código:

 
 

A diferença deste código para o do exemplo anterior é que esta aplicação está dentro de um pacote

 
 

package com.logicapp;

 
 

import com.pedroabs.*;

 
 

public class MyApp {

public static void main(String[] args){

CmdArgs.main(args);

}

}

 
 

Dentro da seguinte estrutura de pastas: C:\myProject3\src\com\logicapp

 
 

Que utiliza a biblioteca ‘pedro.jar’ encontrada em: C:\myProject3\jar

 
 

 
 

 
 

Compilando:

 
 

Vamos compilar para a pasta classes

 
 

C:\myProject3>javac -d classes -cp jar\pedro.jar src\com\logicapp\MyApp.java

 
 

 
 

 
 

Executando:

 
 

C:\myProject3\classes>java -cp ../jar/pedro.jar;. com.logicapp.MyApp pedro abs

 
 

0 element = pedro

1 element = abs

 
 

 
 

Se tentar o mesmo comando porém diretamente dentro das pastas que representam o pacote temos um erro, conforme pode-se observar abaixo

 
 

C:\myProject3\classes\com\logicapp> java -cp ../jar/pedro.jar;. com.logicapp.MyApp pedro abs

 
 

Error: Could not find main class com.logicapp.MyApp

Exception in thread “main” java.lang.NoClassDefFoundError: com.logicapp.MyApp

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

Caused by: java.lang.ClassNotFoundException: com.logicapp.MyApp

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

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

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

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

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

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

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

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

 
 

Anúncios
Esta entrada foi publicada em Compilação e distribuição, Java com as etiquetas . ligação permanente.

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão /  Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão /  Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão /  Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão /  Alterar )

w

Connecting to %s