Sintaxe do Preverify

Pessoal, bom dia.

Bom, seguindo este artigo to tentando iniciar com o eclipseME.

Bom, quanto ao plugin tá beleza. O problema tá na hora de executar o build.xml, que tá dando erro na hora de executar o comando preverify.

Bom, a linha de execução é a seguinte:

preverify.exe -classpath C:\WTK22\lib\midpapi10.jar;C:\WTK22\lib\cldcapi10.jar -cldc -d C:\Eclipse\Workspace\HelloWorld\class C:\Eclipse\Workspace\HelloWorld\class

e tá dando

error=2

Qual a sintaxe correta do preverify?

Obrigado.

Olá!

Olha, já tive problemas parecidos com este, sendo que a minha app não tinha nenhum defeito… :roll:

Mas para falar a verdade, não “pré-verifico” minhas app desta forma…
Eu utilizo a seguinte tarefa:


    <!-- =================================================================== -->
    <!-- Criando o .jar                                            			 -->
    <!-- =================================================================== -->
	<target name="criaJar">
		<wtkpackage jarfile="${jarApp.file}" jadfile="${jadApp.file}" obfuscate="false" preverify="true" autoversion="false" profile="MIDP-2.0" config="CLDC-1.1">
			  <fileset dir="${classes.dir}" /> 
		</wtkpackage>
	</target>

Repare que coloco a parametro “preverify” recebendo “true”, assim ele tb preverifica a app. Tenta assim, e posta aqui o resultado…
Acho que isso que aconteceu com vc, deve ser uma falha na sua app…
Mas se for, fica IMPOSSIVEL de saber, né? :roll:

Caso alguém saiba exatamente o que significa isso, por favor poste aqui o significado!!!

Valeu!

Renan, eu consegui pre-verificar.

Eu tava usando variáveis no build pra especificar o caminho “C:\wtk22\bin”

Eu troquei as variáveis ${wtk.path} pelo caminho mesmo e daí deu certo.
Pimba!

Eu não testei o seu modo mas é legal também, bem mais fácil por sinal.

Cara, tem como vc colocar aí o seu build.xml???

Eu to fazendo tudo certinho, mas na hora de rodar tá dando erro falando que nao tem o MIDlet-Name no meu jad. E tem!

Caramba… já to penando com isso.

Ok,

ai vai!


<?xml version="1.0"?>
<project name="CowboyGame" default="main" basedir="D:\Renan\CowboyGame">

    <property name="Name" value="CowboyGame" />
    <property name="name" value="CowboyGame" />

	<!-- Configurações para emulador da Sun -->
	<!-- Obrigatório para a utilização do Antenna -->
	<property name="wtk.home" value="C:\WTK21"/>  
	<property name="wtk.cldc.version" value="1.1"/> 
	<property name="wtk.midp.version" value="2.0"/>
	
		<!-- Configurações para emulador da Simenes(C65) -->
	<!--	<property name="wtk.home" value="C:\siemens\SMTK_3.X"/>  
		<property name="wtk.cldc.version" value="1.1"/>	
 		<property name="wtk.midp.version" value="2.0"/> -->

	
	<property name="midlet.name"   value="BolinhaGame"/>

	<property name="classes.dir"   value="${basedir}/bin"/>
	<property name="deploy.dir"   value="${basedir}/deploy"/>

	<property name="jarApp.file"   value="${deploy.dir}/${name}.jar"/>
	<property name="jadApp.file"   value="${deploy.dir}/${name}.jad"/>

	

	<taskdef name="wtkjad" classname="de.pleumann.antenna.WtkJad" /> 
	<taskdef name="wtkbuild" classname="de.pleumann.antenna.WtkBuild" /> 
	<taskdef name="wtkpackage" classname="de.pleumann.antenna.WtkPackage" /> 
	<taskdef name="wtkmakeprc" classname="de.pleumann.antenna.WtkMakePrc" /> 
	<taskdef name="wtkrun" classname="de.pleumann.antenna.WtkRun" /> 
	<taskdef name="wtkpreverify" classname="de.pleumann.antenna.WtkPreverify" /> 
	<taskdef name="wtkobfuscate" classname="de.pleumann.antenna.WtkObfuscate" /> 
	

    <!-- =================================================================== -->
    <!-- Preparando a estrutura da app                                            -->
    <!-- =================================================================== -->
    <target name="prepare">
    	<mkdir dir="${deploy.dir}"/>
	</target>

    <!-- =================================================================== -->
    <!-- Criando o .jar                                            			 -->
    <!-- =================================================================== -->
	<target name="criaJar">
		<wtkpackage jarfile="${jarApp.file}" jadfile="${jadApp.file}" obfuscate="false" preverify="true" autoversion="false" profile="MIDP-2.0" config="CLDC-1.1">
			  <fileset dir="${classes.dir}" /> 
		</wtkpackage>
	</target>

    <!-- =================================================================== -->
    <!-- Criando o .jad                                            			 -->
    <!-- =================================================================== -->
	<target name="criaJad">
		<wtkjad jadfile="${jadApp.file}" jarfile="${jarApp.file}" name = "${midlet.name}" vendor="Renan Del Puppo Furtado" version="2" update="true">
			<midlet name="${midlet.name}.java" icon="imagens/icone.png" class="br.com.renan.${midlet.name}" /> 
		</wtkjad>
	</target>

	
    <!-- =================================================================== -->
    <!-- Executando a aplicação no emulador...                               -->
    <!-- =================================================================== -->
	<target name="executa">
		<!-- Emulador da Siemens(C65) -->
		<!-- <wtkrun jadfile="${jadApp.file}" device="C65" wait="true" /> -->
		<!-- Emulador da Sun -->
		<wtkrun jadfile="${jadApp.file}" device="DefaultColorPhone" wait="true" />
	</target>
		
   <!-- Main -->
   <target name="main" depends="prepare,criaJad,criaJar,executa" />
	
</project>

Lembrando, o “main” é quem dita a ordens das tarefas a serem executadas…

Cara, nada ainda.

Olha o erro que tá dando:

Buildfile: C:\eclipse\workspace\HelloWorld\Build.xml
prepare:
criaJad:
   [wtkjad] **************************************************************
   [wtkjad] * Antenna 0.9.13 initialized for project "HelloWorld"        *
   [wtkjad] * Using Sun Wireless Toolkit 2.2 (CLDC-1.0; MIDP-1.0)        *
   [wtkjad] **************************************************************
   [wtkjad] Updating JAD file C:\eclipse\workspace\HelloWorld\output\HelloWorld.jad
criaJar:
[wtkpackage] Building jar: C:\eclipse\workspace\HelloWorld\output\HelloWorld.jar
[wtkpackage] Preverifying C:\eclipse\workspace\HelloWorld\output\HelloWorld.jar
BUILD FAILED: C:\eclipse\workspace\HelloWorld\Build.xml:50: 


O ERRO VEM AQUI
java.io.FileNotFoundException: 
C:\eclipse\workspace\HelloWorld\282ec364.tmp\HelloWorld.jar (O sistema não pode encontrar o arquivo especificado)


Total time: 13 seconds

Que raios de diretório é esse??? “282ec364.tmp” Ele tá procurando ele mas não acha.

Afff… wtk aí vou eu…

faz um favor…

coloca o seu build.xml ai…
E explica mais ou menos a estrutura de diretórios da sua app(a partir da raiz da app).

Por acaso não tem nenhuma variável setada incorretamente??

No aguardo…

Cara!!! Super Hiper Ultra Mega Vacilo meu :oops:

Eu to usando dentro do diretório do HelloWorld um sub-diretório chamado “class”, criado de acordo o artigo.

Bom, daí nas tags que o build sample do antenna há o seguinte:

			<!-- Package our newly compiled classes and the
                 resources from the WTK's demo application. -->

			<fileset dir="${midlet.home}/classes" />
			<fileset dir="${midlet.home}/res" />

eu tinha trocado o classes por class. E era isso que tava dando o erro.

Agora tá dando outro erro, falando que não há o MIDlet-Name no meu descritor. Isso eu vou olhar aqui e já volto se não der certo…

Valeu Renan! :thumbup:

Ok! Isto é o que mais acontece! :wink:

Mas só adiantando o erro que esta acontecendo…


<!-- =================================================================== -->
     <!-- Criando o .jad                                            			 -->
     <!-- =================================================================== -->
 	<target name="criaJad">
 		<wtkjad jadfile="${jadApp.file}" jarfile="${jarApp.file}" name = "${midlet.name}" vendor="Renan Del Puppo Furtado" version="2" update="true">
 			<midlet name="${midlet.name}.java" icon="imagens/icone.png" class="br.com.renan.${midlet.name}" /> 
 		</wtkjad>
 	</target>

Na “midlet name” vc coloca o nome do seu MIDLET principal…

Abração!

Cara, criei novamente o projeto e deu certo…

valeu

Ps.: Traumático isso de utilizar o ant/antenna heim??? Eeee que o wtk é mais fácil é.

Depende do ponto vista…
Com o WTK ou o EclipseME vc fica bem amarrado a burocracia dos criadores destas ferramentas… Caso vc precise mudar alguma coisa na sua estrutura, já era.

Com o ant vc fica livre… faz da maneira que quiser sem nenhuma burocracia… pode ainda escrever sua próprias tarefas…

E tb, não é tão dificil assim! Depois que vc fez um, vc só o adpta para outros projetos e tudo fica blz…

Abração!