Ant打包jar,参数名变为无意义的arg0,arg1,Java代码提示参数名称无意义
2015-01-13 17:00
253 查看
症状:
使用ant打包的jar,变量变成如下无意义的arg0,arg1. 代码提示也同样. 而使用Eclipse的导出jar就没有问题
解决方法:
让ant使用Eclipse的打包功能.
1.在build.xml的javac命令中增加 debug="true" debuglevel="lines, vars, source"这两行属性
2.在build.xml的头部增加<property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"></property>
(防止Class not found: org.eclipse.jdt.core.JDTCompilerAdapter的问题)
3.复制org.eclipse.jdt.core.jar和jdtCompilerAdapter.jar到ant的lib目录下.(两个文件可在eclipse的安装目录中搜索到,如果没有或者够懒,点此下载. 本文结尾提供了全包下载,如果还是有问题,可以下载全包)
重新运行build.xml文件,生成的jar就会看到效果.
讲解:
问题原因是ant打包默认javac命令是debug=false的.
debug打开后所生成的jar包会比原包大一些(我这里原250K的包,开了debug后增加到320K,大了三分之一)
如果你只要保留变量名可以简写成debuglevel="vars",这样jar包也会变小.(我这里320K的包,变成了280K)
debuglevel="lines, vars, source"的参数说明如下
lines:将源文件中的行号信息写到Class文件中,此属性用于在Class文件中生成方法字节码流偏移量和源代码行号之间的映射关系。不指定此属性的话,将在堆栈异常信息中看不到打印的行号。
vars:Local variable属性建立了方法的栈帧中局部变量部分内容与源代码中局部变量名称和描述符之间的映射关系。有了这个属性,调试时,我们才可以看到变量的值。
source:编译时指定了这个属性,会把源文件的属性信息如源文件名称写入class文件
所需资源下载:
http://download.csdn.net/detail/landehuxi/8357897
使用ant打包的jar,变量变成如下无意义的arg0,arg1. 代码提示也同样. 而使用Eclipse的导出jar就没有问题
解决方法:
让ant使用Eclipse的打包功能.
1.在build.xml的javac命令中增加 debug="true" debuglevel="lines, vars, source"这两行属性
2.在build.xml的头部增加<property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"></property>
(防止Class not found: org.eclipse.jdt.core.JDTCompilerAdapter的问题)
3.复制org.eclipse.jdt.core.jar和jdtCompilerAdapter.jar到ant的lib目录下.(两个文件可在eclipse的安装目录中搜索到,如果没有或者够懒,点此下载. 本文结尾提供了全包下载,如果还是有问题,可以下载全包)
重新运行build.xml文件,生成的jar就会看到效果.
讲解:
问题原因是ant打包默认javac命令是debug=false的.
debug打开后所生成的jar包会比原包大一些(我这里原250K的包,开了debug后增加到320K,大了三分之一)
如果你只要保留变量名可以简写成debuglevel="vars",这样jar包也会变小.(我这里320K的包,变成了280K)
debuglevel="lines, vars, source"的参数说明如下
lines:将源文件中的行号信息写到Class文件中,此属性用于在Class文件中生成方法字节码流偏移量和源代码行号之间的映射关系。不指定此属性的话,将在堆栈异常信息中看不到打印的行号。
vars:Local variable属性建立了方法的栈帧中局部变量部分内容与源代码中局部变量名称和描述符之间的映射关系。有了这个属性,调试时,我们才可以看到变量的值。
source:编译时指定了这个属性,会把源文件的属性信息如源文件名称写入class文件
所需资源下载:
http://download.csdn.net/detail/landehuxi/8357897
相关文章推荐
- Java程序打包成带参数的jar文件实例代码
- 普通java项目生成jar包的基本写法(利用ANT打包)
- java实现超链接按钮JButton,可以打包为jar实现代码重
- 手把手教你如何把java代码,打包成jar文件以及转换为exe可执行文件
- 手把手教你如何把java代码,打包成jar文件以及转换为exe可执行文件
- java (jdk+ant.jar包)方式实现zip打包。
- Eclipse中自动提示的参数变成arg0,arg1...的解决方法
- 手把手教你,如何把java代码打包成jar文件以及转换为exe可执行文件
- 手把手教你如何把java代码,打包成jar文件以及转换为exe可执行文件
- Eclipse中自动提示的参数变成arg0,arg1的解决办法
- 用ant将java程序打包成jar
- 手把手教你如何把java代码,打包成jar文件以及转换为exe可执行文件
- Java:Ant打包jar文件(有lib目录)
- 用Ant 打包java工程为jar文件
- 运行代码在MyEclipse中将JAVA项目打包成JAR文件
- 手把手教你如何把java代码,打包成jar文件以及转换为exe可执行文件
- 手把手教你如何把java代码,打包成jar文件以及转换为exe可执行文件
- 相同的代码在eclipse中编译成功,但是用ant编译失败。无法确定<T>T的类型参数;对于上限为int,java.lang.Object的类型变量T,不存在唯一最大实例
- java -jar参数运行打包好的jar应用程序的时候发现应用程序无法找到classpath下设置好的第三方类库?
- 手把手教你如何把java代码,打包成jar文件以及转换为exe可执行文件