j2me项目,在使用ant 打包后,jar 中MANIFEST.MF里中文为乱码

问题描述

各位大神好,最近本人在开发完j2me手机应用项目后,打包使用的是ant,打包后的jar中MANIFEST.MF里中文为乱码,经本人数日苦思研究并查阅资料后无果,甚至苦恼;鄙人愚钝,特在此请教各位大神指点一二,望各位不惜赐教,静候贵帖!以下是build.xml内容:<?xmlversion="1.0"encoding="UTF-8"?><projectname="${programName}"default="end"basedir="."><propertyname="flag.value"value=""/><propertyfile="CONF.properties"/><propertyname="src.dir"value="${basedir}src"/><propertyname="res.dir"value="${basedir}res"/><propertyname="build.dir"value="${basedir}build"/><propertyname="deploy.dir"value="${basedir}deploy"/><propertyname="package.dir"value="${basedir}package"/><propertyname="package.extract.dir"value="${package.dir}extract"/><propertyname="preverified.dir"value="${basedir}preverified"/><propertyname="preverified.noObfusedClass.dir"value="${preverified.dir}noObfusedclasses"/><propertyname="preverified.obfusedClass.dir"value="${preverified.dir}obfusedclasses"/><propertyname="preverify.bin"value="${wtk.home.dir}binpreverify.exe"/><propertyname="emulator.bin"value="${wtk.home.dir}binemulator.exe"/><propertyname="jad.file"value="${programName}.jad"/><propertyname="debuglevel"value="source,vars"/><propertyname="target"value="1.1"/><propertyname="source"value="1.3"/><targetname="replaceJava"><echomessage="替换文件,修改渠道号"/><deletefile="E:metreworkspacekjavaSIPDemosrccomfeedovmainNet.java"/><copyfile="E:metreworkspacekjavaSIPDemoNet.java"todir="E:metreworkspacekjavaSIPDemosrccomfeedovmain"/><replacefile="E:metreworkspacekjavaSIPDemosrccomfeedovmainNet.java"token="100000"value="${flag.value}"encoding="UTF-8"/></target><targetname="init"description="初始化环境"><echomessage="初始化目录"/><mkdirdir="${build.dir}"/><mkdirdir="${deploy.dir}"/><mkdirdir="${package.dir}"/><mkdirdir="${package.extract.dir}"/><mkdirdir="${preverified.dir}"/><mkdirdir="${preverified.noObfusedClass.dir}"/><mkdirdir="${preverified.obfusedClass.dir}"/></target><targetname="compile"depends="init"description="编译"><echomessage="编译程序"/><!--<javacdebug="on"bootclasspath="${midp.lib.path}"classpath="${midp.lib.path};."srcdir="${src.dir}"destdir="${build.dir}"/>--><javacdebug="true"debuglevel="${debuglevel}"srcdir="${src.dir}"destdir="${build.dir}"source="${source}"target="${target}"encoding="UTF-8"><bootclasspathpath="${midp.lib.path}"/><classpath><filesetdir="${midp.lib.dir}"includes="*.jar"/></classpath></javac></target><targetname="clean"><echomessage="删除目录"/><deletedir="${build.dir}"/><deletedir="${deploy.dir}"/><deletedir="${package.dir}"/><deletedir="${preverified.dir}"/></target><targetname="verifyForNoObfuscate"description="验证j2me的class,将验证后的class输出到${preverified.noObfusedClass.dir}"><echomessage="验证生成的class,将验证后的class输出到${preverified.noObfusedClass.dir}"/><execexecutable="${preverify.bin}"searchpath="false"><argline="-classpath${midp.lib.path}"/><argline="-d${preverified.noObfusedClass.dir}"/><argline="${build.dir}"/></exec></target><targetname="genManifest"description="根据模板属性文件的值生成Manifest文件"><echomessage="根据模板属性文件的值生成Manifest文件"/><!--使用${programName}替换掉属性文件GEN.properties中的@PROGRAMNAME@--><replacefile="GEN.properties"token="@PROGRAMNAME@"value="${programName}"/><!--使用GEN.properties文件中的属性值替换掉模板文件MANIFEST.tmp中的对应属性值,将替换后的数据复制到${src.dir}MANIFEST.MF--><copyfile="MANIFEST.MF"tofile="${src.dir}MANIFEST.MF"><filtersetbegintoken="@"endtoken="@"><filtersfilefile="GEN.properties"/></filterset></copy></target><targetname="package"description="将class打包,输出到${package.dir}"><echomessage="将class打包,输出到${package.dir}"/><jarbasedir="${preverified.noObfusedClass.dir}"jarfile="${package.dir}${programName}-noObfused.jar"manifest="${src.dir}MANIFEST.MF"encoding="UTF-8"><filesetdir="${res.dir}"includes="**/*.png"/></jar></target><targetname="obfuscate"description="对打包后的jar文件进行混淆,然后解压缩至${package.extract.dir}"><echomessage="对打包后的jar文件进行混淆,然后解压缩至${package.extract.dir}"/><javafork="true"classname="proguard.ProGuard"><classpathpath="${proguard.lib.dir}proguard.jar"/><argline="-libraryjars${midp.lib.path}"/><argline="-injar${package.dir}${programName}-noObfused.jar"/><argline="-outjar${package.dir}${programName}-obfused.jar"/><!--保留MIDlet的类声明不被混淆--><argline="-keep'publicclass*extendsjavax.microedition.midlet.MIDlet'"/><!--打印被保留的类名--><argline="-printseeds"/></java><unjarsrc="${package.dir}${programName}-obfused.jar"dest="${package.extract.dir}"/></target><targetname="verifyForObfuscate"description="验证被混淆的class,输出到${preverified.obfusedClass.dir}"><echomessage="验证被混淆的class,输出到${preverified.obfusedClass.dir}"/><execexecutable="${preverify.bin}"searchpath="false"><argline="-classpath${midp.lib.path}"/><argline="-d${preverified.obfusedClass.dir}"/><argline="${package.extract.dir}"/></exec><copytodir="${preverified.obfusedClass.dir}"><filesetdir="${package.extract.dir}"includes="**/*.png"/></copy></target><targetname="deploy"description="将经过验证的混淆后的class打包,部署在delpoy目录"><echomessage="将经过验证的混淆后的class打包,部署在${deploy.dir}目录"/><jarbasedir="${preverified.obfusedClass.dir}"encoding="UTF-8"jarfile="${deploy.dir}${programName}${flag.value}.jar"manifest="${src.dir}MANIFEST.MF"><filesetdir="${preverified.obfusedClass.dir}"includes="**/*.class;*.png"/></jar></target><targetname="genJad"description="在${deploy.dir}目录生成JAD文件"><echomessage="在${deploy.dir}目录生成JAD文件"/><lengthfile="${deploy.dir}${programName}.jar"property="jarsize"/><echomessage="获得jar文件长度:${jarsize}"/><replacefile="GEN.properties"token="@JARSIZE@"value="${jarsize}"/><replacefile="GEN.properties"token="@PROGRAMNAME@"value="${programName}"/><copyfile="JAD.mod"tofile="${deploy.dir}${programName}${flag.value}.jad"><filtersetbegintoken="@"endtoken="@"><filtersfilefile="GEN.properties"/></filterset></copy></target><targetname="recoveryGenProperties"description="恢复被修改的GEN.properties"><echomessage="恢复被修改的GEN.properties"/><replacefile="GEN.properties"token="MIDLET_NAME=${programName}"value="MIDLET_NAME=@PROGRAMNAME@"/><replacefile="GEN.properties"token="MIDLET_JAR_URL=${programName}.jar"value="MIDLET_JAR_URL=@PROGRAMNAME@.jar"/><replacefile="GEN.properties"token="MIDLET_JAR_SIZE=${jarsize}"value="MIDLET_JAR_SIZE=@JARSIZE@"/></target><targetname="end"depends="replaceJava,compile,verifyForNoObfuscate,genManifest,package,obfuscate,verifyForObfuscate,deploy,genJad,recoveryGenProperties"/></project>

解决方案

解决方案二:
楼主问题解决没有?我用ant批量打包android也出现manifest.xml乱码

时间: 2024-09-22 14:33:42

j2me项目,在使用ant 打包后,jar 中MANIFEST.MF里中文为乱码的相关文章

jar中修改MF文件时出错

问题描述 我在修改打好包的jar文件时候出现了java.util.zip.ZipException:invalidentrycompressedsize(expected12219butgot12230bytes)atjava.util.zip.ZipOutputStream.closeEntry(UnknownSource)atjava.util.zip.ZipOutputStream.putNextEntry(UnknownSource)atjava.util.jar.JarOutputSt

Linux系统中如何使用Ant打包Android项目

实际上.linux ant 打包android项目跟windows ant打包android项目是有很多的相似之处的,流程基本一致,唯一的不同,可能就是在操作上的问题,接下来,我将就Linux系统打包android项目进行详尽的介绍,并在后面简要的记录一下我在搭建相关环境的时候,出现的一些问题. 老规矩,先罗列一下要用到的工具 A.javajdk: B.ant 压缩文件:(http://ant.apache.org) C.androidsdk(http://developer.android.c

ant的高级使用,ant命令详解,ant打包,ant编译后打包去掉jar文件

在日常的项目开发中,我们可以经常性的需要打包测试,尤其是开发环境是windows,而实际环境则是linux. 这样的话,很多程序员要一会打一个包,一会打一个包,这些包可能会很大,实际上只有代码部分会变动,而jar包基本则不动. 当然很多人可能会说,自动化测试.很好的,我们今天要做的就是自动化测试的第一步. 这个时候我是可以使用ant来打包,去掉项目中的所有的jar文件.然后在项目的tomcat启动时到特定的地点去加载jar文件. 这样做,war包可能会只有几M,什么更小.具体如何动态的加载jar

java用eclipse打包成jar后如何不需要控制台窗口

问题描述 java用eclipse打包成jar后如何不需要控制台窗口 是一个有gui的jar项目,但我不想运行他时有个黑色窗口.另外,我向只要双击就能运行它,而不是要到命令行去开启 解决方案 Eclipse把Java工程打包成jar使用Eclipse把java文件打包成jar用eclipse将Java工程打包成jar包 解决方案二: 那可以把命令存为bat执行文件,双击bat就能达到你要的效果 解决方案三: 在cmd中直接输入"java -jar xxx.jar"就可以运行这个jar文

java在eclipse上能连接sql2012数据库,为什么打包成jar后就不行了?

问题描述 java在eclipse上能连接sql2012数据库,为什么打包成jar后就不行了? java在eclipse上能连接sql2012,用Fat jar打包成jar后就不行了.为什么?之前没下载过什么sqljdbc.jar.sqljdbc4.jar的驱动也能连接的呀.最后在网上下载了驱动一同打包后还是没能连接成功.classpath什么的也不会配置.求教!已附上错误提示图 解决方案 打包的时候选择方式问题,把引用的包也要打包,你是用eclipse打包的吗?有三个选项,你得好好看看 解决方

在Eclipse中将Java项目打包为jar

如果自己的java project中需要引用额外的jar包作为资源文件,那么需要自己自定义配置文件MANIFEST.MF ,内容示例如下: Manifest-Version: 1.0Class-Path: lib/crimson.jar lib/jbcl.jar lib/junit.jar lib/log4j-1.2.13.jar lib/mysql-connector-java-3.1.13-bin.jarMain-Class: src.YourMainClassName 其中的Class-P

如何将一个引入了library的项目打包成jar发给别人用,需要详细步骤及使用方法

问题描述 如何将一个引入了library的项目打包成jar发给别人用,需要详细步骤及使用方法 现在是有一个项目引入了两个library,要将这个项目打成jar包,放到另外一个项目中使用 解决方案 eclipse java ee工具为例: 右键点项目--export--选java下的Runnable JAR file 然后 看看导出的jar文件里 文件不是不全的,不是全的就换图片里的其他选项试试,总有一个会好的 其他的工具不熟悉 解决方案二: 先按楼上说的打包,然后用EXEJ4D等软件打包成EXE

android studio-如何将Android Studio 中的项目打包成jar文件,求方法

问题描述 如何将Android Studio 中的项目打包成jar文件,求方法 如题,求能用的方法,试了好多百度的方法,不怎么好用啊,越详细越好 解决方案 AS 生成Jar包 在Gradle中添加任务声明 def makeJar(String target, String classDir) { exec { executable "jar" //调用jar args "cvf", target args "-C", classDir args

java 打包成jar后无法运行(在eclipse下可以运行)???

问题描述 打包成jar后无法运行(在eclipse下可以运行)用java-jarxxx.jar命令可以运行!就是双击无法运行!以前可以双击运行重装JDK,后就无法双击运行了,但在eclipse下运行完全正常.请各位指点迷津!!! 解决方案 解决方案二:默认用Java-jar运行解决方案三:是这样的jar是不可以运行的,我们感觉它可以直接运行其实是可以用java打开,就像图片.视频可以双击打开一样.你重装java之后java.exe找不到了,所以就打不开了,你需要把%JAVA_HOME%bin加到