Bom dia Pessoal,
Estou com um dificuldades em gerar um .jar em tempo de execução. Já vi alguns tópicos aqui no GUJ e em outros fóruns, etc. mas até agora nada…
Meu projeto consiste em um WS utilizando um biblioteca gráfica chamada VTK que gera uma imagem 3D com interação com o usuário. O cliente para esse WS envia um arquivo com os dados necessários para gerar a imagem.
O propósito de usar o WS para gerar a imagem é não utilizar processamento local, pois o motor gráfico da VTK é lento. Deixando a cargo do cliente apenas a visualização.
A idéia é gerar um .jar e retorná-lo ao cliente para que o mesmo possa executá-lo e assim visualizar/interagir com a imagem/objeto.
Estou tentando executar o comando “jar cvfm meu_manifesto.mf minhas_classes”
Pois bem, com esse comando eu consigo gerar o .jar, no entanto ao executá-lo, é retornado um erro de “NoClassDefFoundError”
Acredito que o problema está no manifest, só que não consigo configurá-lo de forma que a main class seja encontrada.
Criei um projetinho bem simples só para testar essa dúvida, a estrutuda do .jar está assim:
build->classes->javaapplication9->Main.class
build->classes->javaapplication9->Serializacao.class
META-INF->MANIFEST.MF
O comando que estou executando para gerar o jar acima é o seguinte:
jar cvfm teste.jar manifest.mf \build\classes
Meu manifest:
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.8.0
Created-By: 1.6.0_12-b04 (Sun Microsystems Inc.)
Main-Class: build.classes.javaapplication9.novaMain
Class-Path: lib/vtk.jar
Ao executar:
java -jar teste.jar
Acontece esse erro:
Exception in thread “main” java.lang.NoClassDefFoundError: build/classes/javaapplication9/novaMain (wrong name: javaapplication9/novaMain)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(Unknown Source)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$000(Unknown Source)
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)
Could not find the main class: build.classes.javaapplication9.novaMain. Program will exit.
Se alguém tiver uma luz, por favor, me ajude.