Pessoal,
estou com um problema quanto ao uso de AspectJ.
Preciso criar uma aplicação em AspectJ em um JAR.
Fiz esta aplicação no Eclipse e nele roda tudo ok. Porém, ao tentar gerar o JAR, eu não consigo definir o ponto inicial do programa (aspecto que tem o método public static void main(String[] args)).
Pelo que eu entendo de AspectJ, classes não podem chamar aspectos. Somente aspectos podem chamar aspectos, sendo que aspectos podem também chamar classes. Assim, no Eclipse, eu tive que criar um aspecto com um método main para que este fosse o ponto de início do programa. Ao mandar o eclipse rodar essa aplicação, ele roda tranquilamente.
Porém eu preciso criar um JAR para esta aplicação. Eu criei o manifesto e atribui ao atributo “Main-Class” o valor “performance.Program” (o caminho completo do aspecto de nome Program que contém o método main). Porém, ao executar o JAR, dá erro.
Por mais loucura que isto possa parecer, não estou usando aspectos para logs, depurações e etc. Estou usando para programar mesmo. Isto porque, estou fazendo um trabalho acadêmico que utiliza Aspectos para mapear associações entre classes. Estou utilizado a biblioteca RAL para isto, assim as classes ficam independentes das associações, aumentando a coesão e diminuindo o acoplamento. Sendo assim, todo comando de acesso as associações estão dentro de aspectos e desta maneira, meu programa precisa ser escrito em aspectos.
Para auxiliar vocês a depurarem um possível erro meu, sergue o código do aspecto que possui o método main:
[code]package performance;
//imports…
public final aspect Program {
public static void main(String[] args) {
// código da aplicação
}
}[/code]
Agora, o código do arquivo de manifesto (presente dentro do JAR em META-INF/MANIFEST.MF):
Manifest-Version: 1.0
Main-Class: performance.Program
Class-Path: C:\Program Files\AspectJ-1.6\lib\aspectjtools.jar;D:\iuri\Documents\SVN\svn.inf.ufsc.br\Mestrado\projeto\Object-Relation Language\produção\AspectJ\PerformanceAspectJ\lib\ral.jar
Segue o comando digitado no console após a geração do JAR (chamado de PerformanceRAL.jar):
java -jar PerformanceRAL.jar
E por fim, o erro retornado no console:
Erro: Não foi possível localizar nem carregar a classe principal performance.Program
Qualquer solução para este problema é bem vinda!
Obrigado